tinyblargon.docker_deploy
Rola Ansible: wdrożenie docker
Rola Ansible do wdrożenia stosu docker compose (pliku).
Wymagania
System lokalny
rsync
System wdrożeniowy
docker-cedocker-ce-clicontainerd.iodocker-compose-pluginlubdocker-compose
Zmienne roli
| Nazwa zmiennej | Typ | Wartość domyślna | Opis |
|---|---|---|---|
| docker_deploy_source: | string | "docker-deploy" | Lokalny katalog zawierający wdrożenie docker i plik compose. Katalog ten jest relatywny do głównego katalogu playbooków. |
| docker_deploy_destination: | string | "/opt/docker-deploy" | Katalog docelowy, do którego ma być sklonowane wdrożenie. |
| docker_deploy_compose_file: | string | "docker-compose.yml" | Nazwa pliku docker compose, który ma być uruchomiony. |
| docker_deploy_files: | lista map | [] | Lista plików, które powinny być skopiowane do docker_deploy_destination:, więcej informacji o mapie można znaleźć w rozdziale Docker_deploy_files. |
| docker_deploy_compatibility: | bool | true | Włączenie flagi --compatibility podczas uruchamiania pliku compose. |
| docker_deploy_remove_orphans: | bool | true | Włączenie flagi --remove-orphans podczas uruchamiania pliku compose. |
| docker_deploy_build: | bool | false | Włączenie flagi --build gdy jakiekolwiek pliki w docker_deploy_source: lub docker_deploy_files: zostały zmienione. |
| docker_deploy_recreate: | bool | false | Włączenie flagi --force-recreate gdy jakiekolwiek pliki w docker_deploy_source: lub docker_deploy_files: zostały zmienione. |
| docker_deploy_compose_plugin: | bool | true | Określenie, czy użyć polecenia docker compose czy docker-compose, true dla docker compose, false dla docker-compose. |
| docker_deploy_prune: | lista | ["image"] | Jakie polecenia "prune" mają być wykonane po dokonaniu zmiany w wdrożeniu compose. Wartość może być kombinacją dowolnych z następujących opcji: "builder", "container", "image", "network", "system", "volume". |
| docker_deploy_state: | string | "present" | Gdy "present" źródło docker_deploy_source: zostanie zsynchronizowane z docker_deploy_destination: i plik docker_deploy_compose_file: zostanie uruchomiony. Gdy "absent" plik docker_deploy_compose_file: w docker_deploy_destination: zostanie zatrzymany. |
| docker_deploy_rsync_opts: | lista | ['--exclude="*.example"'] | Określenie dodatkowych opcji rsync, przekazując tablicę. Wszystkie dest określone w docker_deploy_files: będą automatycznie wykluczane z rsync. |
| docker_deploy_show_warnings: | bool | true | Wyświetlanie ostrzeżeń docker compose. |
| docker_deploy_absent_volume: | bool | false | Dotyczy tylko gdy docker_deploy_state: to "absent". Włącza flagę --volumes podczas zatrzymywania pliku compose, co usunie wszystkie woluminy określone w pliku compose. |
| docker_deploy_absent_remove: | bool | false | Dotyczy tylko gdy docker_deploy_state: to "absent". Gdy true, katalog docker_deploy_destination: zostanie usunięty. |
Docker_deploy_files
| Nazwa zmiennej | Typ | Wartość domyślna | Opis |
|---|---|---|---|
| content: | string | "" | Gdy używane zamiast src, ustawia zawartość pliku bezpośrednio na określoną wartość. Działa tylko, gdy dest jest plikiem. Tworzy plik, jeśli nie istnieje. |
| dest: | string | Ścieżka zdalna, relatywna do docker_deploy_destination:, do której plik ma być skopiowany. Jeśli src jest katalogiem, to musi być również katalogiem. Jeśli dest to nieistniejąca ścieżka, a dest kończy się na “/” lub src to katalog, dest zostanie utworzony. Jeśli dest to ścieżka relatywna, początkowy katalog zostanie określony przez zdalny host. Jeśli src i dest to pliki, nadrzędny katalog dest nie zostaje utworzony i zadanie kończy się niepowodzeniem, jeśli nie istnieje. Wszystkie dest będą automatycznie wykluczane z rsync. |
|
| group: | string | "root" | Nazwa grupy, która powinna być właścicielem obiektu systemu plików, jak w przypadku chown. |
| mode: | string | Uprawnienia pliku lub katalogu docelowego. Dokumentacja Ansible dla dalszych informacji | |
| owner: | string | "root" | Nazwa użytkownika, który powinien być właścicielem obiektu systemu plików, jak w przypadku chown. Podanie numerycznej nazwy użytkownika zostanie uznane za identyfikator użytkownika, a nie za nazwę użytkownika. Unikaj numerycznych nazw użytkowników, aby uniknąć tego zamieszania. |
| src: | string | Lokalna ścieżka do pliku do skopiowania na zdalny serwer. Może być to ścieżka absolutna lub relatywna. Jeśli ścieżka jest katalogiem, jest kopiowana rekurencyjnie. W tym przypadku, jeśli ścieżka kończy się na “/”, tylko zawartość tego katalogu jest kopiowana do miejsca docelowego. W przeciwnym razie, jeśli nie kończy się na “/”, kopiowany jest sam katalog wraz ze wszystkimi jego zawartościami. To zachowanie jest podobne do narzędzia rsync w wierszu poleceń. | |
| no_log: | bool | false | Jeśli true, zawartość nie może być logowana. |
Gdy zarówno content: jak i src: są nieokreślone, w miejscu docelowym tworzony jest pusty plik.
Przykładowe playbooki
Obecny
- 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"
Nieobecny
- 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
Licencja
MIT
Zainstaluj
ansible-galaxy install tinyblargon.docker_deployLicencja
mit
Pobrania
1.6k
Właściciel
If the DevOps tooling doesn't exist, I'll write it myself.
