ansible-playbook installation zabbix_server, agent monitoring

Mainly to complete the automatically generated by zabbix_server playbook, agent, there is no fully automated, machine here still need to get people filled out by hand, if you are interested want the machine to automatically obtain required deployment can be intercepted by namp scanning tool awk command, but more description here . I did a test with two machines, the old version of the module usage will be different, if not execution can go see https://ansible-tran.readthedocs.io/en/latest/, reference documentation through the official website https: // www .cnblogs.com / LyShark / p / 10886486.html

ansible 2.4.2
zabbix 3.4.15

  • Installed nmap scanning tool

    yum install nmap -y
    #通过ping探测172.16.9.0网段中存活机器
    nmap -sP 172.16.9.0/24

Log in to complete the free secret between machines

  • Generate a public key pair

    ssh-keygen -t rsa
  • Set ansible hosts configuration

    [test]
    172.16.9.141 ansible_ssh_user="root" ansible_ssh_pass="root"
    172.16.9.142 ansible_ssh_user="root" ansible_ssh_pass="root"
    
    [zabbix_server]
    172.16.9.141
    [zabbix_client]
    172.16.9.142
  • Batch push public key to the cluster nodes

    - hosts: test
      user: root
      tasks:
      - name: ssh-copy
        authorized_key: user=root key="{{ lookup('file', '/root/.ssh/id_rsa.pub') }}"
        tags:
        - sshkey

    Error:

    FAILED! => {"msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this.  Please add this host's fingerprint to your known_hosts file to manage this host."}

    solve:

    /etc/ansible/ansible.cfg

    Modify host_key_checking (the default check)

  • playbook build zabbix_server (official suggested a play to write a separate task, but more exacting test)

    # 初始化,关闭防火墙和SELINUX
    - hosts: zabbix_server
      tasks:
        - name: off selinux
          shell: setenforce 0
        - name: seline modify enforcing
          lineinfile:
            dest: /etc/selinux/config
            regexp: '^SELINUX='
            line: 'SELINUX=disabled'
        - name: seline firealld
          shell: systemctl stop firewalld && systemctl disable firewalld
    # 安装部署LAMP环境,通过YUM模块快速安装
    - hosts: zabbix_server
      tasks:
      - name: install LAMP
        yum: name={{item}} state=installed
        with_items:
          - httpd
          - httpd-devel
          - mariadb
          - mariadb-server
          - php
          - php-mysql
      - name: start httpd
        shell: systemctl restart httpd
      - name: start mariadb
        shell: systemctl restart mariadb
    # 下载YUM源,更新EOEL源,安装Zabbix
    - hosts: zabbix_server
      tasks:
        - name: clear YUM
          shell: rm -rf /etc/yum.repos.d/*
        - name: install YUM EPEL
          get_url: 'url=http://mirrors.aliyun.com/repo/Centos-7.repo dest=/etc/yum.repos.d/CentOS-Base.repo'
        - name: yum install EPEL -y
          yum: name=epel-release state=installed
        - name: install zabbix.repo
          shell: rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
        - name: install zabbix
          yum: name={{item}} state=installed
          with_items:
            - zabbix-server-mysql
            - zabbix-web-mysql
            - zabbix-agent
        - name: start zabbix-server
          shell: systemctl restart zabbix-server
        - name: start zabbix-agent
          shell: systemctl restart zabbix-agent
    # 安装配置数据库权限,导入zabbix数据库
    - hosts: zabbix_server
      tasks:
        - name: set mariadb password
          shell: mysqladmin -u root password 'ansible'
        - name: create zabbix master databases
          shell: mysql -uroot -pansible -e 'create database zabbix character set utf8 collate utf8_bin;'
        - name: set zabbix master databases grant
          shell: mysql -uroot -pansible -e 'grant all privileges on zabbix.* to zabbix@localhost identified by "zabbix";'
        - name: import zabbix initial data SQL shell
          shell: zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pzabbix zabbix
    # 修改并拷贝配置文件,给予权限
    - hosts: zabbix_server
      tasks:
        - name: edit zabbix dbhost
          lineinfile:
            dest: /etc/zabbix/zabbix_server.conf
            regexp: '# DBHost=localhost'
            line: 'DBHost=localhost'
        - name: edit zabbix dbpasswd
          lineinfile:
            dest: /etc/zabbix/zabbix_server.conf
            regexp: '# DBPassword='
            line: 'DBPassword=zabbix'
        - name: cp zabbix web
          shell: cp -a /usr/share/zabbix/* /var/www/html/
        - name: chmod web
          shell: chmod 755 -R /var/www/html/*
        - name: chown web
          shell: chown apache.apache -R /var/www/html/*
    
        - name: set php
          shell: echo "date.timezone = Asia/Shanghai" >> /etc/php.ini
        - name: set php
          shell: echo "max_execution_time = 300" >> /etc/php.ini
        - name: set php
          shell: echo "max_input_time = 300" >> /etc/php.ini
        - name: set php
          shell: echo "post_max_size = 32M" >> /etc/php.ini
        - name: set php
          shell: echo "memory_limit = 128M" >> /etc/php.ini
        - name: set php
          shell: echo "mbstring.func_overload = 0" >> /etc/php.ini
    
        - name: start http mysql zabbix
          shell: systemctl restart httpd ; systemctl restart mariadb
        - name: start http mysql zabbix
          shell: systemctl restart zabbix-server ; systemctl restart zabbix-agent
        - name: enabled http mysql zabbix
          shell: systemctl enable httpd ; systemctl enable mariadb
        - name: start http mysql zabbix
          shell: systemctl enable zabbix-server ; systemctl enable zabbix-agent
    • playbook build zabbixclient
    ---
    # 初始化,关闭防火墙和SELINUX
    - hosts: zabbix_client
      tasks:
        - name: off selinux
          shell: setenforce 0
        - name: seline modify enforcing
          lineinfile:
            dest: /etc/selinux/config
            regexp: '^SELINUX='
            line: 'SELINUX=disabled'
        - name: seline firealld
          shell: systemctl stop firewalld && systemctl disable firewalld
    # 安装zabbix_client
    - hosts: zabbix_client
      vars: 
        zabbix_server_ip: 172.16.9.141
        zabbix_agent_ip: 172.16.9.142
    
      tasks:
        - name: install zabbix_client
          shell: rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.15-1.el7.x86_64.rpm  
        - name: Install zabbix agent
          shell: yum -y install zabbix-agent
        - name: modify zabbix server ip address
          shell: sed -i 's#Server=127.0.0.1#Server='{{zabbix_server_ip}}'#g' /etc/zabbix/zabbix_agentd.conf
        - name: modify zabbix server active ip addr
          shell: sed -i 's/ServerActive=127.0.0.1/ServerActive='{{zabbix_server_ip}}'/g' /etc/zabbix/zabbix_agentd.conf
        - name: Enable remote command execution
          shell: sed -i 's/# EnableRemoteCommands=0/EnableRemoteCommands=1'/g /etc/zabbix/zabbix_agentd.conf
        - name: Enable remote command logs
          shell: sed -i 's/# LogRemoteCommands=0/LogRemoteCommands=1'/g /etc/zabbix/zabbix_agentd.conf
        - name: modify zabbix agent hostname
          shell: sed -i 's/Hostname=Zabbix server/Hostname='{{zabbix_agent_ip}}'/g' /etc/zabbix/zabbix_agentd.conf
        - name: enable zabbix-agent
          shell: systemctl start zabbix-agent ;systemctl enable zabbix-agent

Check again a few grammatical structure, command host is in effect

ansible-playbook install_zabbix_server.yaml --syntax-check
ansible-playbook install_zabbix_server.yaml --list-task
ansible-playbook install_zabbix_server.yaml --list-hosts

Guess you like

Origin www.cnblogs.com/only-me/p/11761015.html