playbook_nginx/php_mariadb/zabbix_playbook03292102.tar.gz

目录结构
[root@ansible ansible]# tree ./ ./ ├── ansible.cfg ├── hosts ├── playbook03292102.tar.gz ├── playbook.yml └── roles ├── mariadb │   ├── file │   │   └── mariadb.tar.gz │   ├── scripts │   │   ├── passwd.sh │   │   └── zabbixuser.sh │   └── tasks │   └── main.yml ├── nginx │   ├── conf │   │   ├── nginx.repo │   │   └── w.conf │   ├── file │   │   └── nginx-1.16.1-1.el7.ngx.x86_64.rpm │   ├── scripts │   ├── tasks │   │   └── main.yml │   └── tools ├── php-fpm │   ├── conf │   │   └── www.conf │   ├── file │   │   └── php-fpm.tar.gz │   ├── repo │   │   ├── epel.repo │   │   ├── epel-testing.repo │   │   ├── webtatic-archive.repo │   │   ├── webtatic.repo │   │   └── webtatic-testing.repo │   ├── scripts │   ├── tasks │   │   └── main.yml │   └── tools └── zabbix ├── conf │   ├── zabbix.conf │   └── zabbix_server.conf ├── file │   ├── defines.inc.php │   ├── simkai.ttf │   ├── zabbix.4.2.8.tar.gz │   └── zabbix-release-4.2-2.el7.noarch.rpm ├── opt │   ├── mariadb-5.5.64-1.el7.x86_64.rpm │   ├── mariadb-server-5.5.64-1.el7.x86_64.rpm │   ├── perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64.rpm │   ├── perl-Compress-Raw-Zlib-2.061-4.el7.x86_64.rpm │   ├── perl-Data-Dumper-2.145-3.el7.x86_64.rpm │   ├── perl-DBD-MySQL-4.023-6.el7.x86_64.rpm │   ├── perl-DBI-1.627-4.el7.x86_64.rpm │   ├── perl-IO-Compress-2.061-2.el7.noarch.rpm │   ├── perl-Net-Daemon-0.48-5.el7.noarch.rpm │   └── perl-PlRPC-0.2020-14.el7.noarch.rpm ├── repo │   └── zabbix.repo ├── scripts ├── tasks │   └── main.yml └── tools
[root@ansible ansible]# cat playbook.yml 
- hosts: db
  remote_user: root
  roles: 
  - mariadb

- hosts: web
  remote_user: root
  roles: 
  - nginx
  - php-fpm

- hosts: db
  remote_user: root
  roles: 
  - zabbix
[root@ansible ansible]# cat roles/mariadb/tasks/main.yml 
    - name: push mariadb.tar
      copy: src=./file/mariadb.tar.gz dest=/root
    
    - name: tar mariadb
      shell: tar zxf mariadb.tar.gz -C /opt/

    - name: install mariadb
      shell: cd /opt && yum localinstall -y /opt/*.rpm
      async: 0

    - name: start mariadb
      service: name=mariadb state=started enabled=yes

    - name: copy sh
      copy:  src=scripts/passwd.sh dest=/root/
    
    - name: mysql_secure_installation
      shell: "chmod +x passwd.sh &&sh passwd.sh"
      ignore_errors: yes

    - name: rm -rf /opt/*
      shell:  rm -rf /opt/* /root/passwd.sh /root/mariadb.tar.gz
[root@ansible ansible]# cat roles/nginx/tasks/main.yml        
    - name: add repo
      get_url: url=http://mirrors.aliyun.com/repo/Centos-7.repo dest=/etc/yum.repos.d/CentOS-Base.repo

    - name: copy nginx.repo to repo
      copy: src=./conf/nginx.repo dest=/etc/yum.repos.d/

    - name: copy rpm to root
      copy: src=./file/nginx-1.16.1-1.el7.ngx.x86_64.rpm dest=/opt

    - name: install nginx
      shell: yum localinstall -y /opt/nginx*.rpm
      async: 0

    - name: Configure nginx
      shell: mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.off

    - name: copy nginx.conf      
      copy: src=./conf/w.conf  dest=/etc/nginx/conf.d/

    - name: start nginx
      service: name=nginx state=started enabled=yes
[root@ansible ansible]# cat roles/php-fpm/tasks/main.yml      
    - name: yumrepo
      copy: src=./repo/ dest=/etc/yum.repos.d/

    - name: phptar
      copy: src=file/php-fpm.tar.gz dest=/opt/

    - name: tar zcf
      shell: tar -zxf /opt/php-fpm.tar.gz -C /opt/

    - name: install php
      shell: yum localinstall -y /opt/php-fpm/*.rpm
      async: 0

    - name: configure php
      copy: src=conf/www.conf dest=/etc/php-fpm.d

    - name: start php
      service: name=php-fpm state=started enabled=yes

    - name: rm -rf /opt/*
      shell: rm -rf /opt/*
[root@ansible ansible]# cat roles/zabbix/tasks/main.yml 
    - name: add repo
      get_url: url=http://mirrors.aliyun.com/repo/Centos-7.repo dest=/etc/yum.repos.d/CentOS-Base.repo

    - name: clean
      shell: yum clean all

    - name: push tar and rpm
      copy: src=./file/zabbix-release-4.2-2.el7.noarch.rpm dest=/opt/

    - name: push tar and rpm
      copy: src=./file/zabbix.4.2.8.tar.gz dest=/opt/

    - name: rpm zabbixrepo
      shell: "rpm -ivh /opt/zabbix-release-4.2-2.el7.noarch.rpm && rm -rf /opt/zabbix-release-4.2-2.el7.noarch.rpm"
      poll: 0
      ignore_errors: yes

    - name: copy tar to opt
      copy: src=./file/zabbix.4.2.8.tar.gz dest=/opt/

    - name: tar zabbix
      shell: cd /opt && tar -zxf /opt/zabbix.4.2.8.tar.gz && rm -rf /opt/zabbix.4.2.8.tar.gz

    - name: install zabbix
      shell: "yum -y localinstall /opt/zabbix*.rpm"
      async: 0

    - name: create zabbixdb and user
      shell: mysql -p123qwe -e "create database zabbix;grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';"
      ignore_errors: yes

    - name: Configure zabbixdb
      shell: zcat /usr/share/doc/zabbix-server-mysql-4.2.8/create.sql.gz | mysql zabbix -uzabbix -pzabbix
      ignore_errors: yes

    - name: configure zabbix.conf
      copy: src=./conf/zabbix_server.conf  dest=/etc/zabbix/zabbix_server.conf

    - name: configure zabbix.conf
      copy: src=./conf/zabbix.conf  dest=/etc/httpd/conf.d/zabbix.conf

    - name: start zabbix
      service: name=httpd enabled=yes state=started

    - name: start zabbix-server
      service: name=zabbix-server enabled=yes state=started

    - name: start zabbix
      service: name=zabbix-agent enabled=yes state=started

    - name: Fonts
      copy: src=./file/simkai.ttf dest=/usr/share/zabbix/assets/fonts/

    - name: Fonts to defines.inc.php
      copy: src=./file/defines.inc.php dest=/usr/share/zabbix/include/

    - name: chmod
      file: path=/usr/share/zabbix/assets/fonts/simkai.ttf mode=777

    - name: firewalld add server http
      firewalld: service=http state=enabled permanent=yes immediate=yes

    - name: firewalld add server mysql
      firewalld: service=mysql state=enabled permanent=yes immediate=yes

    - name: firewalld add server zabbix-agent
      firewalld: service=zabbix-agent state=enabled permanent=yes immediate=yes

    - name: firewalld add server zabbix-server
      firewalld: service=zabbix-server state=enabled permanent=yes immediate=yes
原文地址:https://www.cnblogs.com/Leaders543/p/12582508.html