---
#// 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