10、正式JOB的例子
在服务器上安装并配置zabbix agent,步骤基本和上边的一样,差别在playbook上
---
- hosts: all
remote_user: root
gather_facts: yes
tasks:
- name: install zabbix_agent.
shell: rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-agent-3.2.7-1.el7.x86_64.rpm
- name: edit configuration file for zabbix_agent.
template:
src: zabbix_agentd.conf.j2
dest: /etc/zabbix/zabbix_agentd.conf
backup: yes
owner: root
group: root
mode: 0644
- name: start zabbix_agent service.
systemd:
name: zabbix-agent.service
state: started
enabled: yes
- name: configure firewall.
firewalld:
port: 10050/tcp
permanent: true
state: enabled
- name: Create a new host in zabbix
local_action:
module: zabbix_host
server_url: http://192.168.1.121/zabbix/
login_user: api
login_password: ********
host_name: '{ {ansible_default_ipv4.address}}'
host_groups:
- Linux servers
link_templates:
- Template OS Linux
status: enabled
state: present
timeout: 30
interfaces:
- type: 1
main: 1
useip: 1
ip: '{ {ansible_default_ipv4.address}}'
dns: ""
port: 10050
注释:shell、template、systemd、firewalld这些都是Ansible内置模块,zabbix_host是外置需要安装的模块,所有模块具体用法见下边官方文档
https://docs.ansible.com/ansible/latest/modules/list_of_all_modules.html
如果不安装zabbix_host,直接运行job会出如下错误
安装zabbix_host模块
yum -y install epel-release
yum install python-pip
pip install zabbix-api
zabbix接口创建主机的具体用法见下边官方文档
https://www.zabbix.com/documentation/3.2/manual/api/reference/hostinterface/object#host_interface
playbook代码如下:
运行job后日志如下
运行后192.168.1.79已被zabbix连接10050端口
zabbix的主机界面已经有192.168.1.79,且正常监控
11、特别环节:交互式运行Job
下边以交互创建虚拟机为例
完成Playbook
新建Templates
然后点击右上角的ADD SURVEY
PROMPT是此变量的描述
ANSWER VARIABLE NAME是Playbook中的变量名。注意一定不要写错,不能包含小数点等特殊符号
ANSWER TYPE是变量值的类型
全部写完后的界面,可以点击右侧的铅笔图标修改
当运行JOB时会跳出刚才写的交互对话框
按JOB要求填写即可,注意不能出现任何中文字符
运行JOB,没问题