---#// Time: 2020-01-20#// Name: 地铁昌平线#// file_name: main.yaml#// Unified entrance- hosts: all # 指定主机以root用户运行 remote_user: root vars_files: ../vars/vars.yaml tasks: - name: docker-compose Install {{ ansible_distribution }} # 安装docker-compose copy: src: ../files/docker-compose dest: /usr/local/bin/ mode: 0755 when: ( ansible_distribution == "CentOS" ) - name: Import import_tasks: optimization.yaml # 关闭 Selinux And iptalbes - include: init_pkg.yaml #// Environment dependence and common command installation - include: docker_repo.yaml #// Reference docker Yum source file - include: docker_json.yaml #// Docker log restrictions - name: Docker Daemon shell: "systemctl daemon-reload" - name: install Docker yum: # name: "{{ packages_list[0] }}" name: "{{ app['package']['docker_package'] }}" #// Level variable definition state: present - name: enabel && start docker service:# name: "{{ packages_list[1] }}" name: "{{ start['server_name']['app_docker'] }}" enabled: yes state: started - name: Installed zabbix_agent yum: name: https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.23-1.el7.x86_64.rpm state: present - name: agent.conf configure #Modify ZABBIX agent client configuration lineinfile: backrefs: yes path: /etc/zabbix/zabbix_agentd.conf regexp: '^Server=127.0.0.1' line: 'Server=47.114.102.211' - name: serverActive lineinfile: backrefs: yes path: /etc/zabbix/zabbix_agentd.conf regexp: '^ServerActive=127.0.0.1' line: 'ServerActive=47.114.102.211' - name: Start ZABBIX client systemd:# name: "{{ packages_list[1] }}" name: "{{ start['server_name']['app_zabbix'] }}" state: started enabled: yes - name: System resource inspection shell: | free -m | awk 'NR==2{printf "Memory Usage: %s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 }' df -h -t ext2 -t ext4 | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print "Disk Usage:"" " $1 " " $3"/"$2" ""("$5")"}' top -bn1 | grep load | awk '{printf "CPU Load: %.2f\n", $(NF-2)}' register: out - debug: var=out.stdout_lines - name: Kernel configuration #修改内核参数 copy: src: ../files/sysctl.conf dest: /etc/sysctl.conf backup: yes - name: Create a directory if it does not exist # Create a mirror storage directory file: path: /usr/local/esl/docker-images state: directory mode: '0755' - name: Copy Images cline esl directory copy: #src: "{{ item.src }}" #dest: "{ item.dest }" #with_items: # - { src: '/root/Project/esl/files/esl-emqtt.tar.gz',dest: '/usr/local/esl/docker-images' } # - { src: '/root/Project/esl/files/esl-fastdfs.tar.gz',dest: '/usr/local/esl/docker-images' } src: "{{ item }}" dest: /usr/local/esl/docker-images with_fileglob: - /root/Project/esl/files/docker_images/*.tar.gz - name: docker images load shell: for images in `ls /usr/local/esl/docker-images/*.tar.gz`; do docker load -i $images; done # Project configuration replication - name: nginx_app configuration unarchive: src: ../files/nginx.tar.gz dest: /usr/local/esl/ - name: nginx.myfonts unarchive: src: ../files/myfonts.tar.gz dest: /usr/local/esl/ - name: redis unarchive: src: ../files/redis.tar.gz dest: /usr/local/esl/ - name: mysql unarchive: src: ../files/mysql.tar.gz dest: /usr/local/esl/ - name: mysql my.cnf copy: src: ../files/my.cnf dest: /usr/local/esl - name: emqtt unarchive: src: ../files/emqtt.tar.gz dest: /usr/local/esl - name: storage unarchive: src: ../files/fastdfs.tar.gz dest: /usr/local/esl - name: Create directory file: path: "{{ item }}" state: directory with_fileglob: - /usr/local/esl/application # - /usr/local/esl/app - /usr/local/esl/xxl_job - name: Create directory file: path: /usr/local/esl/app state: directory - name: copy nginx configure copy: src: ../files/nginx.conf dest: /usr/local/esl/application/ - name: copy app copy: src: ../files/app/ dest: /usr/local/esl/app - name: copy xxl_job copy: src: ../files/xxl_job/ dest: /usr/local/esl/xxl_job - name: copy docker-compose.yaml copy: src: ../files/docker-compose.yaml dest: /usr/local/esl - name: start docker-compose #shell: docker-compose up -d --build shell: | cd /usr/local/esl docker-compose up -d --build #register: info # - debug: var=info.stdout_lines