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-ce
docker-ce-cli
containerd.io
docker-compose-plugin
lubdocker-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_deploy
Licencja
mit
Pobrania
1.1k
Właściciel
If the DevOps tooling doesn't exist, I'll write it myself.