docker_deploy
Ansible Роль: развертывание Docker
Ansible роль для развертывания стеков Docker Compose (файлов).
Требования
Локальная система
rsync
Развертываемая система
docker-ce
docker-ce-cli
containerd.io
docker-compose-plugin
илиdocker-compose
Переменные Роли
Имя переменной | Тип | Значение по умолчанию | Описание |
---|---|---|---|
docker_deploy_source: | строка | "docker-deploy" | Локальный каталог, содержащий файлы для развертывания Docker и Compose. Этот каталог относителен к основному каталогу плейбуков. |
docker_deploy_destination: | строка | "/opt/docker-deploy" | Папка назначения, в которую должно быть скопировано развертывание. |
docker_deploy_compose_file: | строка | "docker-compose.yml" | Имя файла Docker Compose, который нужно запустить. |
docker_deploy_files: | список | [] | Список файлов, которые должны быть скопированы в docker_deploy_destination: , больше информации о списке можно найти в следующей главе Docker_deploy_files. |
docker_deploy_compatibility: | булево | true | Включить флаг --compatibility , когда запускается файл Compose. |
docker_deploy_remove_orphans: | булево | true | Включить флаг --remove-orphans , когда запускается файл Compose. |
docker_deploy_build: | булево | false | Включить флаг --build , когда какие-либо файлы в docker_deploy_source: или docker_deploy_files: были изменены. |
docker_deploy_recreate: | булево | false | Включить флаг --force-recreate , когда какие-либо файлы в docker_deploy_source: или docker_deploy_files: были изменены. |
docker_deploy_compose_plugin: | булево | true | Укажите, нужно ли использовать команду docker compose или docker-compose , true для docker compose , false для docker-compose . |
docker_deploy_prune: | список | ["image"] | Какие команды очистки должны быть выполнены после изменения конфигурации Compose. Значение может быть комбинацией следующих опций: "builder" , "container" , "image" , "network" , "system" , "volume" . |
docker_deploy_state: | строка | "present" | Когда "present" , docker_deploy_source: будет синхронизирован с docker_deploy_destination: , и docker_deploy_compose_file: будет запущен. Когда "absent" , docker_deploy_compose_file: в docker_deploy_destination: будет остановлен. |
docker_deploy_rsync_opts: | список | ['--exclude="*.example"'] | Укажите дополнительные опции rsync в виде массива. Все dest , указанные в docker_deploy_files: , автоматически будут исключены из rsync. |
docker_deploy_show_warnings: | булево | true | Показывать предупреждения Docker Compose. |
docker_deploy_absent_volume: | булево | false | Применяется только когда docker_deploy_state: равно "absent" . Включает флаг --volumes, когда файл Compose останавливается, это удалит все тома, указанные в файле Compose. |
docker_deploy_absent_remove: | булево | false | Применяется только когда docker_deploy_state: равно "absent" . Если true , docker_deploy_destination: будет удален. |
Docker_deploy_files
Имя переменной | Тип | Значение по умолчанию | Описание |
---|---|---|---|
content: | строка | "" | Когда используется вместо src , устанавливает содержимое файла непосредственно в указанное значение. Работает только когда dest является файлом. Создает файл, если он не существует. |
dest: | строка | Удаленный путь, относительно docker_deploy_destination: , куда должен быть скопирован файл. Если src является каталогом, это тоже должен быть каталог. Если dest — несуществующий путь и если dest заканчивается на “/” или src является каталогом, dest будет создан. Если dest — относительный путь, начальный каталог определяется удаленным хостом. Если src и dest — файлы, родительский каталог dest не создается, и задача завершится с ошибкой, если он не существует. Все dest автоматически будут исключены из rsync. |
|
group: | строка | "root" | Имя группы, которой должен принадлежать объект файловой системы, как это было бы передано в chown. |
mode: | строка | Права доступа к файлу или каталогу назначения. Документация Ansible для дальнейших деталей | |
owner: | строка | "root" | Имя пользователя, который должен владеть объектом файловой системы, как это было передано в chown. Если указано числовое имя пользователя, оно будет считаться идентификатором пользователя, а не именем пользователя. Избегайте числовых имен пользователей, чтобы избежать путаницы. |
src: | строка | Локальный путь к файлу, который необходимо скопировать на удаленный сервер. Это может быть абсолютный или относительный путь. Если путь — каталог, он копируется рекурсивно. В этом случае, если путь заканчивается на “/”, только содержимое этого каталога копируется в назначение. В противном случае, если он не заканчивается на “/”, сам каталог со всем содержимым копируется. Это поведение похоже на инструмент командной строки rsync. | |
no_log: | булево | false | Если true , содержимое не может быть записано в журнал. |
Когда content:
и src:
оба не указаны, в назначении создается пустой файл.
Примеры Плейбуков
Присутствует
- hosts: all
roles:
- role: tinyblargon.docker_deploy
vars:
docker_deploy_source: "docker-deploy"
docker_deploy_destination: "/opt/docker-deploy"
docker_deploy_compose_file: "docker-compose.yml"
docker_deploy_files:
- dest: ".env"
src: ".env"
- dest: ".secrets/password.txt"
content: "{{ lookup('file', 'password.txt') }}"
owner: "root"
group: "root"
mode: "0600"
no_log: true
docker_deploy_compatibility: true
docker_deploy_remove_orphans: true
docker_deploy_recreate: true
docker_deploy_compose_plugin: false
docker_deploy_prune: ["system"]
docker_deploy_state: "present"
Отсутствует
- hosts: all
roles:
- role: tinyblargon.docker_deploy
vars:
docker_deploy_destination: "/opt/docker-deploy"
docker_deploy_compose_file: "docker-compose.yml"
docker_deploy_compose_plugin: false
docker_deploy_prune: ["system", "volume"]
docker_deploy_state: "absent"
docker_deploy_absent_volume: true
docker_deploy_absent_remove: true
Лицензия
MIT
Установить
ansible-galaxy install Tinyblargon/ansible-role-docker-deploy
Лицензия
mit
Загрузки
613
Владелец
If the DevOps tooling doesn't exist, I'll write it myself.