首页 > 其他分享 >ansible 统计 ssh 登录信息

ansible 统计 ssh 登录信息

时间:2024-04-12 18:34:19浏览次数:22  
标签:count ok 登录 192.168 ansible ssh login

hosts

[centos-root]
192.168.174.129 ansible_ssh_port=22 
192.168.174.130 ansible_ssh_port=22  
192.168.174.131 ansible_ssh_port=22 

Ansible Vault 文件

创建 Ansible Vault 文件

# ansible-vault create passwords.yml
New Vault password:                    # 12345678
Confirm New Vault password:

编辑 Ansible Vault 文件

# ansible-vault edit passwords.yml
Vault password:

passwords.yml

hosts_passwords:
  192.168.174.129:
    currently_yunwei_password: yunwei*_129
  192.168.174.130:
    currently_yunwei_password: yunwei*_130
  192.168.174.131:
    currently_yunwei_password: yunwei*_131

playbook

ssh_login_stats.yaml

- hosts: centos
  remote_user: yunwei
  gather_facts: no  # 禁用 Ansible 在执行任务之前从目标主机中收集信息
  become: yes
  become_method: sudo
  become_user: root
  vars_files:
    - passwords.yml
  vars:
    ansible_ssh_pass: "{{ hosts_passwords[inventory_hostname].currently_yunwei_password }}"
    ansible_become_pass: "{{ ansible_ssh_pass }}" 

  tasks:
    - name: Count SSH logins on April 12
      shell: "grep 'Apr 12'  /var/log/secure  | grep 'sshd'"
      register: ssh_log_content
      ignore_errors: yes

    # 统计成功和失败的 SSH 登录次数
    - set_fact:
        success_count: "{{ ssh_log_content.stdout | regex_findall('Accepted password') | length }}"
        failure_count: "{{ ssh_log_content.stdout | regex_findall('Failed password') | length }}"
  
    # 格式化要写入文件的内容,去掉换行符
    - set_fact:
        log_content: "{{ inventory_hostname }} login success count is: {{ success_count }}, login failure count is: {{ failure_count }}" 

    # 将 SSH 登录次数保存到本地文件
    - name: Append SSH login counts on April 12 to file
      delegate_to: localhost        # 在本地执行任务,结果写入本地文件。而不会分散在不同的远程主机文件中。
      lineinfile:
        path: /root/ssh_login_counts_centos_apr12.txt
        line: "{{ log_content | regex_replace('(\n|\r)', '') }}"
        insertafter: EOF
        create: yes

测试 playbook

# ansible-playbook -i hosts ssh_login_stats.yaml --ask-vault-pass
Vault password: 

PLAY [centos] *****************************************************************************************************************************************************************

TASK [Gathering Facts] ********************************************************************************************************************************************************
ok: [192.168.174.131]
ok: [192.168.174.130]
ok: [192.168.174.129]

TASK [Count SSH logins on April 12] *******************************************************************************************************************************************
changed: [192.168.174.129]
changed: [192.168.174.131]
changed: [192.168.174.130]

TASK [set_fact] ***************************************************************************************************************************************************************
ok: [192.168.174.129]
ok: [192.168.174.130]
ok: [192.168.174.131]

TASK [set_fact] ***************************************************************************************************************************************************************
ok: [192.168.174.129]
ok: [192.168.174.130]
ok: [192.168.174.131]

TASK [Append SSH login counts on April 12 to file] ****************************************************************************************************************************
ok: [192.168.174.131 -> localhost]
ok: [192.168.174.130 -> localhost]
ok: [192.168.174.129 -> localhost]

PLAY RECAP ********************************************************************************************************************************************************************
192.168.174.129            : ok=5    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.174.130            : ok=5    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.174.131            : ok=5    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0 

确认结果

192.168.174.131 login success count is: 87, login failure count is: 14
192.168.174.130 login success count is: 84, login failure count is: 4
192.168.174.129 login success count is: 29, login failure count is: 2

标签:count,ok,登录,192.168,ansible,ssh,login
From: https://www.cnblogs.com/wangguishe/p/18131809

相关文章

  • node笔记1:vue+node+mongodb+studio 3T创建登录模块
    1.创建node项目:expressnodenpmipackage.json修改如下代码,便于每次修改代码都可以刷新页面:"scripts":{"start":"node-dev./bin/www"}2.如果配合node设置反向代理;3.添加mongoose模块提供数据库信息:npmimongoose--save4.以登录功能模块为例,项目文件如下:model......
  • Linux架构29 ansible playbook任务标签, 复用文件, 忽略错误, 错误处理
    四、playbook任务标签1.标签的作用默认情况下,Ansible在执行一个playbook时,会执行playbook中定义的所有任务,Ansible的标签(tag)功能可以给单独任务甚至整个playbook打上标签,然后利用这些标签来指定要运行playbook中的个别任务,或不执行指定的任务。2.打标签的方式1.对一个tas......
  • ansible 添加用户
    hosts[centos-root]192.168.174.129ansible_ssh_port=22192.168.174.130ansible_ssh_port=22192.168.174.131ansible_ssh_port=22AnsibleVault文件创建AnsibleVault文件#ansible-vaultcreatepasswords.ymlNewVaultpassword:#12345......
  • Oracle 实现多语言(即根据用户登录的环境自适应本地语言)
    CREATEORREPLACEPACKAGEBODYOADBA.db_globalIS--設定參數值PROCEDUREset_value(parameterVARCHAR2,valVARCHAR2)ISBEGINDBMS_SESSION.set_context('db_context',parameter,val);ENDset_value;--取得參數值FUNCTION......
  • ansible 通过密码登录主机
    hosts[centos-root]192.168.174.129ansible_ssh_port=22ansible_ssh_user=rootansible_ssh_pass=host1192.168.174.130ansible_ssh_port=22ansible_ssh_user=root192.168.174.131ansible_ssh_port=22ansible_ssh_user=rootAnsibleVault文件创建AnsibleVault......
  • ansible python API
    version:v2.9官方示例如下:点击查看代码#!/usr/bin/envpythonfrom__future__import(absolute_import,division,print_function)__metaclass__=typeimportjsonimportshutilimportansible.constantsasCfromansible.executor.task_queue_managerimportT......
  • win11 解锁多用户同时登录
    准备工具:1.RDP Wrapper download如果右侧的不是fullysupported,而是红色的notsupported。【开始】-【运行】-【services.msc】找到下面的服务,停止掉 同步修改组策略设置 直接安装,并修改组策略【计算机配置】-【管理模板】-【Windows组件】-【远程桌面服务】-【远程......
  • pycharm安装ansible模块
    在pycharm中通过pipinstallansible==2.9时遇到报错:error:can'tcopy'lib\ansible\module_utils\ansible_release.py':doesn'texistornotaregularfile解决方法:Downloadthelatestzipreleaseversionfromgithub(e.g.https://github.com/ansib......
  • 自动化运维(十五)Ansible 实战之批量创建WEB服务器
        前面我们学习了一些Ansible模块的知识,从这一块篇开始我们进入到 Ansible实战内容的学习,我们会根据实际应用中的一些案例来演示这些模块的综合应用。现在我们有这么一个需求:在esxi虚拟机192.168.110.2上创建5台web服务器,web服务器配置为2核4G,50G硬盘,安装nginx服务......
  • 自动化运维工具Ansible
    ansible主要的意义在于可以提高运维工作效率,降低成本提高准确度资料 Ansible中文权威指南离线安装wgethttps://github.com/ansible/ansible/archive/refs/tags/v2.16.5.tar.gztar-zxvfv2.16.5.tar.gzcdansible-v2.16.5pythonsetup.pyinstall主要配置ansibl......