Reference
Create a structure below
. ├── files ├── README.md ├── vars │ └── nodes.yml └── webserver-docker.yml
Environment variable files vars/nodes.yml
--- docker_compose_version: "1.23.2" ctop_version: "0.7.3"
Playbook webserver-docker.yml
--- # Bootstreap Docker nodes
- hosts: webservers
become: yes
vars_files:
- vars/nodes.yml
tasks:
- name: Install misc tools
yum:
name: "{{ item }}"
state: latest
loop:
- net-tools
- vim
- telnet
- name: Install docker prequisites
yum:
name: "{{ item }}"
state: latest
loop:
- yum-utils
- device-mapper-persistent-data
- lvm2
- name: Configure docker-ce repo
get_url:
url: https://download.docker.com/linux/centos/docker-ce.repo
dest: /etc/yum.repos.d/docker-ce.repo
mode: 0644
- name: Install Docker latest version
yum:
name: docker-ce
state: present
- name: Start and enable Docker service
service:
name: docker
state: started
enabled: yes
- name: Check if Docker Compose is installed
command: docker-compose --version
register: docker_compose_check
ignore_errors: yes
- name: Download and install Docker Compose
get_url:
url: https://github.com/docker/compose/releases/download/{{ docker_compose_version }}/docker-compose-{{ ansible_system }}-{{ ansible_userspace_architecture }}
dest: /usr/bin/docker-compose
mode: 0755
when:
- docker_compose_check.msg is defined
- docker_compose_check.msg.find('No such file or directory') != -1
- name: Check if ctop is installed
command: ctop -v
register: ctop_check
ignore_errors: yes
- name: Download and install ctop
get_url:
url: https://github.com/bcicen/ctop/releases/download/v{{ ctop_version }}/ctop-{{ ctop_version }}-linux-amd64
dest: /usr/bin/ctop
mode: 0755
when:
- ctop_check.msg is defined
- ctop_check.msg.find('No such file or directory') != -1
- name: Create folder for Docker Compose files
file:
path: "/opt/docker"
state: directory
owner: "ansible"
mode: 0755
handlers:
- name: reload systemd
systemd:
daemon_reload: yes
- name: reload firewalld
service:
name: firewalld
state: reloaded