===== Подготовка серверов ======
==== Запуск сборки: ====
ansible-playbook -i inventory config.yaml -K
====Структура данных: ====
📁 ansible-demo
+---📁 inventory
| +---cluster
\---config.yaml
====inventor:====
**cluster**
[cluster]
server1 ansible_host=127.0.0.1 ansible_user=vagrant ansible_port=2223
server2 ansible_host=127.0.0.1 ansible_user=vagrant ansible_port=2224
server3 ansible_host=127.0.0.1 ansible_user=vagrant ansible_port=2225
server4 ansible_host=127.0.0.1 ansible_user=vagrant ansible_port=2226
server5 ansible_host=127.0.0.1 ansible_user=vagrant ansible_port=2227
==== playbook: ====
** config.yaml**
---
- name: Preconfig
hosts: cluster
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
- lsb-release
update-cache: true
cache_valid_time: 86400
state: present
- name: Создать папку
file:
path: /etc/apt/keyrings
state: directory
- name: добавление ключа Docker
apt_key:
url: https://download.docker.com/linux/ubuntu/gpg
keyring: /etc/apt/keyrings/docker.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: true
filename: docker
- name: Установка Docker-ce
apt:
name: docker-ce
update-cache: true
cache_valid_time: 86400
- name: Проверка что docker установлен и перезагружен
service:
name: docker
state: restarted
enabled: true
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: true
- name: завершени установки
block:
- name: Добавление пользователя в группу Docker
user:
name: werwolf
groups: docker
append: true
- name: Перезагрузка сервера
reboot:
msg: "Rebooting machine in 5 seconds"
become: true