Ansible自动化部署的运用

1.简介

Ansible,是一个使用Python语言开发的轻量级自动化运维工具。安装部署过程简单,学习曲线很平坦。由于业务的关系,需要在集群上部署1000个Zabbix Agent,借助Ansible无疑是最好的选择了。

2.实战

1.安装Ansible

yum –y install ansible
内网情况下,现在ansible及其依赖的rpm包,添加到yum源进行安装。

2.主机配置文件

在/etc/ansible中添加主机,主机配置文件为hosts,也可以在ansible.cfg中修改配置
inventory={主机配置文件路径}
具体hosts格式
[zabbix-agent] #分组名称,最好是一个文件一个分组。
IP ansible_ssh_user=’{账户名}’ ansible_ssh_pass=’{密码}’ hostname={主机名字,可以自定义}

3.编写安装脚本

Ansible 文件目录:

├── ansible.cfg
├── hosts
└── roles
    ├── install_zabbix_agent
    │   ├── file
    │   │   ├── zabbix-agent-4.2.4-1.el7.x86_64.rpm
    │   │   └── zabbix_agentd.conf
    │   ├── handler
    │   │   └── main.yml
    │   └── tasks
    │       ├── install.yml
    │       ├── main.yml
    │       └── setport.yml
└── install_zabbix_agent.yml

install_zabbix_agent.yml

- hosts: zabbix-agent
  remote_user: root
  sudo: yes
  sudo_user: root
  gather_facts: true
  roles:
  - install_zabbix_agent

handler下的 main.yml

- name: restart zabbix-agent
  service: name=zabbix_agentd state=restarted

tasks 下的 main.yml

- import_tasks: install.yml
- import_tasks: setport.yml

install.yml

  - block:
      - name: "copy zabbix_agent to clients"
        cpoy:
          src=zabbix-agent-4.2.4-1.el7.x86_64.rpm
          dest=/tmp
      - name: "yum install zabbix_agent"
        yum:
          name: /tmp/zabbix-agent-4.2.4-1.el7.x86_64.rpm
          state: present
      - name: "copy zabbix_agentd.conf"
        copy:
          src=zabbix_agentd.conf
          dest=/etc/zabbix/zabbix_agentd.conf
      - name: disabled selinux
        shell: /usr/sbin/setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
      - name: "start zabbix, enable zabbix"
        service:
          name=zabbix-agent
          state=started
          enabled=yes
        notify:
    - restart zabbix-agent

setport.yml:

   - block:
      - name: mkdir log file
        shell: mkdir -p /var/log/zabbix
      - name: chmod for log
        shell: chmod -R 755 /var/log/zabbix
      - name: chown for log
        shell: chown -R zabbix. /var/log/zabbix
      - name: chmod for zabbix
        shell: chmod -R 755 /etc/zabbix
      - name: chown for zabbix
        shell: chown -R zabbix. /etc/zabbix
      - name: change log filepath
        shell: sed -i 's/LogFile=\/var\/log\/zabbix\/zabbix_agent.log/LogFile=\/var\/log\/zabbix\/{{hostname}}.log/g' /etc/zabbix/zabbix_agentd.conf
      - name: change server ip
        shell: sed -i 's/Server=127.0.0.1/Server=10.10.40.70/g' /etc/zabbix/zabbix_agentd.conf
      - name: change server active ip
        shell: sed -i 's/ServerActive=127.0.0.1/ServerActive=10.10.40.70/g' /etc/zabbix/zabbix_agentd.conf
      - name: change hostname
        shell: sed -i 's/Hostname=Zabbix Server/Hostname={{hostname}}/g' /etc/zabbix/zabbix_agentd.conf
        notify:
      - restart zabbix-agent

你可能感兴趣的:(Ansible,运维,Ansible,运维)