1. ---
    2. #// Time: 2020-01-20
    3. #// Name: 地铁昌平线
    4. #// file_name: main.yaml
    5. #// Unified entrance
    6. - hosts: all # 指定主机以root用户运行
    7. remote_user: root
    8. vars_files: ../vars/vars.yaml
    9. tasks:
    10. - name: docker-compose Install {{ ansible_distribution }} # 安装docker-compose
    11. copy:
    12. src: ../files/docker-compose
    13. dest: /usr/local/bin/
    14. mode: 0755
    15. when: ( ansible_distribution == "CentOS" )
    16. - name: Import
    17. import_tasks: optimization.yaml # 关闭 Selinux And iptalbes
    18. - include: init_pkg.yaml #// Environment dependence and common command installation
    19. - include: docker_repo.yaml #// Reference docker Yum source file
    20. - include: docker_json.yaml #// Docker log restrictions
    21. - name: Docker Daemon
    22. shell: "systemctl daemon-reload"
    23. - name: install Docker
    24. yum:
    25. # name: "{{ packages_list[0] }}"
    26. name: "{{ app['package']['docker_package'] }}" #// Level variable definition
    27. state: present
    28. - name: enabel && start docker
    29. service:
    30. # name: "{{ packages_list[1] }}"
    31. name: "{{ start['server_name']['app_docker'] }}"
    32. enabled: yes
    33. state: started
    34. - name: Installed zabbix_agent
    35. yum:
    36. 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
    37. state: present
    38. - name: agent.conf configure #Modify ZABBIX agent client configuration
    39. lineinfile:
    40. backrefs: yes
    41. path: /etc/zabbix/zabbix_agentd.conf
    42. regexp: '^Server=127.0.0.1'
    43. line: 'Server=47.114.102.211'
    44. - name: serverActive
    45. lineinfile:
    46. backrefs: yes
    47. path: /etc/zabbix/zabbix_agentd.conf
    48. regexp: '^ServerActive=127.0.0.1'
    49. line: 'ServerActive=47.114.102.211'
    50. - name: Start ZABBIX client
    51. systemd:
    52. # name: "{{ packages_list[1] }}"
    53. name: "{{ start['server_name']['app_zabbix'] }}"
    54. state: started
    55. enabled: yes
    56. - name: System resource inspection
    57. shell: |
    58. free -m | awk 'NR==2{printf "Memory Usage: %s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 }'
    59. df -h -t ext2 -t ext4 | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print "Disk Usage:"" " $1 " " $3"/"$2" ""("$5")"}'
    60. top -bn1 | grep load | awk '{printf "CPU Load: %.2f\n", $(NF-2)}'
    61. register: out
    62. - debug: var=out.stdout_lines
    63. - name: Kernel configuration #修改内核参数
    64. copy:
    65. src: ../files/sysctl.conf
    66. dest: /etc/sysctl.conf
    67. backup: yes
    68. - name: Create a directory if it does not exist # Create a mirror storage directory
    69. file:
    70. path: /usr/local/esl/docker-images
    71. state: directory
    72. mode: '0755'
    73. - name: Copy Images cline esl directory
    74. copy:
    75. #src: "{{ item.src }}"
    76. #dest: "{ item.dest }"
    77. #with_items:
    78. # - { src: '/root/Project/esl/files/esl-emqtt.tar.gz',dest: '/usr/local/esl/docker-images' }
    79. # - { src: '/root/Project/esl/files/esl-fastdfs.tar.gz',dest: '/usr/local/esl/docker-images' }
    80. src: "{{ item }}"
    81. dest: /usr/local/esl/docker-images
    82. with_fileglob:
    83. - /root/Project/esl/files/docker_images/*.tar.gz
    84. - name: docker images load
    85. shell: for images in `ls /usr/local/esl/docker-images/*.tar.gz`; do docker load -i $images; done
    86. # Project configuration replication
    87. - name: nginx_app configuration
    88. unarchive:
    89. src: ../files/nginx.tar.gz
    90. dest: /usr/local/esl/
    91. - name: nginx.myfonts
    92. unarchive:
    93. src: ../files/myfonts.tar.gz
    94. dest: /usr/local/esl/
    95. - name: redis
    96. unarchive:
    97. src: ../files/redis.tar.gz
    98. dest: /usr/local/esl/
    99. - name: mysql
    100. unarchive:
    101. src: ../files/mysql.tar.gz
    102. dest: /usr/local/esl/
    103. - name: mysql my.cnf
    104. copy:
    105. src: ../files/my.cnf
    106. dest: /usr/local/esl
    107. - name: emqtt
    108. unarchive:
    109. src: ../files/emqtt.tar.gz
    110. dest: /usr/local/esl
    111. - name: storage
    112. unarchive:
    113. src: ../files/fastdfs.tar.gz
    114. dest: /usr/local/esl
    115. - name: Create directory
    116. file:
    117. path: "{{ item }}"
    118. state: directory
    119. with_fileglob:
    120. - /usr/local/esl/application
    121. # - /usr/local/esl/app
    122. - /usr/local/esl/xxl_job
    123. - name: Create directory
    124. file:
    125. path: /usr/local/esl/app
    126. state: directory
    127. - name: copy nginx configure
    128. copy:
    129. src: ../files/nginx.conf
    130. dest: /usr/local/esl/application/
    131. - name: copy app
    132. copy:
    133. src: ../files/app/
    134. dest: /usr/local/esl/app
    135. - name: copy xxl_job
    136. copy:
    137. src: ../files/xxl_job/
    138. dest: /usr/local/esl/xxl_job
    139. - name: copy docker-compose.yaml
    140. copy:
    141. src: ../files/docker-compose.yaml
    142. dest: /usr/local/esl
    143. - name: start docker-compose
    144. #shell: docker-compose up -d --build
    145. shell: |
    146. cd /usr/local/esl
    147. docker-compose up -d --build
    148. #register: info
    149. # - debug: var=info.stdout_lines