Ansible批量安装zabbix_agent

一、相关环境

centos 7
zabbix 4.0 LTS

二、安装相关依赖和ansible

yum install gcc* pcre* -y
yum install epel-release -y
yum install ansible –y

三、配置ssh免密通信

1、ssh-keygen -t rsa #生成秘钥
2、scp /root/.ssh/id_rsa.pub root@Remote_Ip:/root/.ssh/ #拷贝公钥信息到需要登录的服务器上
3、cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys #添加公钥信息到需要登录的服务器上

四、配置ansible

  1. 编辑hosts定义组
    vim /etc/ansible/hosts
    在这里插入图片描述
  2. ping客户端是否通讯
    在这里插入图片描述

ping成功则配置成功

五、安装zabbix_agent

源:

CentOS/RHEL 7:
#rpm -Uvh http://repo.zabbix.com/zabbix/4.1/rhel/7/x86_64/zabbix-release-4.1-1.el7.noarch.rpm

使用ansible安装:

ansible zabbix -a "sudo rpm -Uvh http://repo.zabbix.com/zabbix/4.1/rhel/7/x86_64/zabbix-release-4.1-1.el7.noarch.rpm"

在这里插入图片描述

ansible zabbix -a "sudo yum -y install zabbix-agent"

在这里插入图片描述接着修改配置文件操作:
在ansible主机的/etc/ansible 目录中新建文件zabbix_agentd.conf

内容为:
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.128.1
ListenPort=10050
ServerActive=192.168.128.1
Include=/etc/zabbix/zabbix_agentd.d/*.conf
EnableRemoteCommands= 1
在这里插入图片描述

出于安全角度考虑,部分公司不希望直接以root的高级管理员权限直接部署应用,往往会开放普通用户权限并给予sudo的权限,该部分配置主要针对sudo用户提权的配置 。
所以需要修改ansible的配置文件:

vim /etc/ansible/ansible.cfg

become = True #是否sudo
become_method=sudo #sudo 方式
become_user=root #sudo后变为root用户
become_ask_pass=False #sudo后是否验证密码

在这里插入图片描述
把文件复制到各个终端去:

ansible zabbix -m copy -a "src=/etc/ansible/zabbix_agentd.conf dest=/etc/zabbix/zabbix_agentd.conf backup=yes"

在这里插入图片描述启动agent服务:

ansible zabbix -a "service zabbix-agent start"
ansible zabbix -a "service zabbix-agent status"

在这里插入图片描述加入自启动:

ansible zabbix -a "chkconfig zabbix-agent on"

在这里插入图片描述
Linux SSH交互式脚本,去除yes/no的提示。

修改/etc/ssh/ssh_config文件(或$HOME/.ssh/config)中的配置,添加如下两行配置:
一般为:StrictHostKeyChecking ask

改为:StrictHostKeyChecking no
	 UserKnownHostsFile /dev/null

修改好配置后,重新启动sshd服务即可

/etc/init.d/sshd restart (或 service sshd restart )

在这里插入图片描述
给zabbix管理员权限,方便在zabbix管理端执行运维脚本。

创建一个shell脚本

vim /etc/ansible/pz-visudo.sh

 #!/bin/bash
echo "zabbix ALL=NOPASSWD: ALL">>/etc/sudoers
tail -1 /etc/sudoers

然后把该脚本分发到各个机器上,并赋755权限

ansible zabbix -m copy -a "src=/etc/ansible/pz-visudo.sh dest=/tmp/pz-visudo.sh mode=0755"

最后批量执行该shell脚本

 ansible zabbix -m shell -a "/tmp/pz-visudo.sh"
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Ansible批量化部署Zabbix Agent,您可以按照以下步骤进行操作: 1. 安装Ansible:首先,在控制机上安装Ansible,确保您已经具备了运行Ansible的环境。 2. 创建Ansible Playbook:创建一个新的Playbook文件(例如`deploy_zabbix_agent.yml`),并在其中定义任务。 ```yaml --- - name: Deploy Zabbix Agent hosts: zabbix_agents become: true tasks: - name: Install Zabbix Agent package apt: name: zabbix-agent state: present - name: Configure Zabbix Agent template: src: zabbix_agent.conf.j2 dest: /etc/zabbix/zabbix_agentd.conf notify: - restart zabbix-agent - name: Start and enable Zabbix Agent service service: name: zabbix-agent state: started enabled: true handlers: - name: restart zabbix-agent service: name: zabbix-agent state: restarted ``` 在上面的示例中,Playbook定义了三个任务:安装Zabbix Agent软件包、配置Zabbix Agent和启动Zabbix Agent服务。 3. 创建Zabbix Agent配置模板:创建一个名为`zabbix_agent.conf.j2`的Jinja2模板文件,其中包含Zabbix Agent的配置信息。根据您的需求,可以在模板中设置主机名称、服务器地址等参数。 ```ini Server=<zabbix_server_ip> ServerActive=<zabbix_server_ip> Hostname={{ inventory_hostname }} ``` 4. 创建主机清单文件:创建一个名为`hosts`的主机清单文件,并在其中列出要部署Zabbix Agent的目标主机。 ```ini [zabbix_agents] host1 host2 host3 ``` 将目标主机的IP地址或主机名替换为实际的主机信息。 5. 运行Playbook:使用ansible-playbook命令运行Playbook,并指定主机清单文件。 ```bash ansible-playbook -i hosts deploy_zabbix_agent.yml ``` Ansible将自动连接到目标主机,并按照Playbook中定义的任务顺序执行操作。这将完成Zabbix Agent批量化部署。 请根据您的实际需求和环境对上述步骤进行适当修改和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值