Видео может быть заблокировано из-за расширений браузера. В статье вы найдете решение этой проблемы.
- Пример файла production/playbook.yml
- Пример файла requirements.yml
- Пример файла inventory.ini
- Пример файла group_vars/webservers.yml
- Примеры команд
Ниже приведён пример файлов конфигурации Ansible для деплоя приложения на два сервера с подключением Rollbar.
Пример файла production/playbook.yml
---
- hosts: webservers # Хосты для которых выполняется ansible
remote_user: root
tasks:
- name: Install packages
ansible.builtin.apt:
name: python3-pip
update_cache: yes
- name: Install Docker Module for Python
ansible.builtin.pip:
name: docker
- name: Run container
# Используем модуль community.docker.docker_container
community.docker.docker_container:
name: hexlet-app # Имя контейнера
image: hexlet/hexlet-app
# Публикуемые порты. Слева порт внутри контейнера,
# справа порт по которому он будет доступен снаружи
published_ports: 80:8080
restart_policy: always
restart: yes
container_default_behavior: no_defaults
pull: yes
# Задаём переменные окружения
env:
# Тут мы используем значение зашифрованной
# с помощью vault переменной
ROLLBAR_TOKEN: "{{ROLLBAR_TOKEN}}"
Пример файла requirements.yml
# Определяем коллекцию
# https://galaxy.ansible.com/community/docker
collections:
- name: community.docker
Пример файла inventory.ini
; определяем один хост с именем webserver
[webservers]
web ansible_host=188.166.111.72 ansible_user=root
Пример файла group_vars/webservers.yml
# Переменная будет доступна только для хостов внутри группы webservers
# https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html
ROLLBAR_TOKEN: !vault |
$ANSIBLE_VAULT;1.1;AES256
38383261333663653036663830323962663232353061373863363231616134633431636438303436
6231303630393430313736613963316238363463373639390a643765313935383663376266386132
34616361646538643361366333666236346162646565393564663832346630653033306136303535
6236313166343237380a333834366439316231363230353339326261623835663066336366303363
38613732303561633336383135386435346635646561663936613139306231613230356633653862
37343962363663373333623366373463636230383538313639323332353936353861386434313438
623330323565376236646433326265326331
Примеры команд
# Таким образом можно зашифровать значение hexlet в переменную the_secret
# с помощью пароля в файле vault-password
ansible-vault encrypt_string --vault-password-file vault-password 'hexlet' --name 'the_secret'
# Чтобы расшифровать зашифрованные с помощью Ansible Vault переменные
# если пароль хранится в файле, используется флаг --vault-password-file
ansible-playbook -v --vault-password-file vault-password production/group_vars/webservers.yml
# Устанавливаем коллекции определённые в файле requirements.yml
ansible-galaxy collection install -r requirements.yml
# Деплоим приложение
ansible-playbook -v production/playbook.yml
# Подключаемся по ssh к хосту с IP 192.168.0.2
ssh username@192.168.0.2
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты