===== Установка Docker, готовое решение =====
==== запуск сборки====
ansible-playbook -i demo-server config.yaml -K
==== структура проекта ====
📁 ansible-demo
+---📁 demo-server
| +---demo
\---config.yaml
==== inventory demo ====
[demo]
127.0.0.1 ansible_user=werwolf ansible_port=2222
==== playbooks config.yaml ====
---
- name: Preconfig
hosts: demo
tasks:
- name: Установка Docker
block:
- name: Create user # Первая задача
vars: # lsb_release -a - узнать версию ubuntu
user: werwolf
user:
name: "{{ user }}"
state: present
- name: Добавим universe
apt_repository: # lsb_release -a - узнать версию ubuntu
repo: "deb http://archive.ubuntu.com/ubuntu {{ ansible_distribution_release }} universe"
state: present
- name: Установка дополнительных пакетов
apt:
name:
- apt-transport-https
- ca-certificates
- curl
- gnupg
update-cache: yes
cache_valid_time: 86400
state: present
- name: добавление ключа Docker
apt_key:
url: https://download.docker.com/linux/ubuntu/gpg
state: present
- name: Установка стабильного репозитория
apt_repository:
repo: >
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg]
https://download.docker.com/linux/ubuntu
{{ ansible_distribution_release }} stable
state: present
update-cache: yes
filename: docker
- name: Установка Docker-ce
apt:
name: docker-ce
update-cache: yes
cache_valid_time: 86400
- name: Проверка что docker установлен и перезагружен
service:
name: docker
state: restarted
enabled: yes
become: true # общий для всего блока вызов sudo
- name: Установка Docker-compose
block:
- name: получение последней версии docker-compose
uri:
url: https://api.github.com/repos/docker/compose/releases/latest
body_format: json
register: release
- name: Установка docker-compose
get_url:
url: "https://github.com/docker/compose/releases/download/{{ release.json.tag_name }}/docker-compose-linux-x86_64"
dest: /usr/local/bin/docker-compose
mode: 0755
become: yes
- name: завершени установки
block:
- name: Добавление пользователя в группу Docker
user:
name: werwolf
groups: docker
append: yes
- name: Перезагрузка сервера
reboot:
msg: "Rebooting machine in 5 seconds"
become: yes