From 41ec1bbb5c571b4991236767b749872a5110ec48 Mon Sep 17 00:00:00 2001 From: mfeix Date: Fri, 3 Dec 2021 17:02:37 +0100 Subject: [PATCH 1/2] =?UTF-8?q?chore(Ansible):=20Hinzuf=C3=BCgen=20von=20A?= =?UTF-8?q?nsible=20deployment=20CI=20Templates?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ansible.gitlab-ci.yml | 35 +++++++++++++++++++ documentation/chapters/templates/ansible.adoc | 33 +++++++++++++++++ documentation/document.adoc | 4 +++ 3 files changed, 72 insertions(+) create mode 100644 ansible.gitlab-ci.yml create mode 100644 documentation/chapters/templates/ansible.adoc diff --git a/ansible.gitlab-ci.yml b/ansible.gitlab-ci.yml new file mode 100644 index 0000000..23a8ee4 --- /dev/null +++ b/ansible.gitlab-ci.yml @@ -0,0 +1,35 @@ +.ansible_lint: + image: quay.io/ansible/toolset:3.5.0 + stage: lint + variables: + EXTRA_ARGS: "" + script: + - ansible --version + - ansible-lint $EXTRA_ARGS + +.ansible_playbook_validate: + extends: .ansible_playbook_run + rules: + - when: always + script: + - ansible --version + - ansible-playbook -i $INVENTORY_PATH $PLAYBOOK_PATH $EXTRA_ARGS --check + +.ansible_playbook_run: + image: quay.io/ansible/toolset:3.5.0 + variables: + ANSIBLE_HOST_KEY_CHECKING: 'false' + ANSIBLE_FORCE_COLOR: 'true' + PLAYBOOK_PATH: playbook.yml + INVENTORY_PATH: inventory.yml + EXTRA_ARGS: "" + rules: + - when: manual + before_script: + - 'command -v ssh-agent >/dev/null || ( apt-get update && apt -y install openssh-client )' + - eval $(ssh-agent -s) + - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + script: + - ansible-playbook -i $INVENTORY_PATH $PLAYBOOK_PATH $EXTRA_ARGS -vv \ No newline at end of file diff --git a/documentation/chapters/templates/ansible.adoc b/documentation/chapters/templates/ansible.adoc new file mode 100644 index 0000000..ec6965c --- /dev/null +++ b/documentation/chapters/templates/ansible.adoc @@ -0,0 +1,33 @@ +:sourcedir: ../../../ + += Ansible-template + +Template Sammlung zur einfachen automation mit Ansible innerhalb der Gitlab CI. + +Erwartet das $SSH_PRIVATE_KEY in den Gitlab CI Variablen gesetzt ist. + +.Angebotene Templates: +|=== +|Name |Description +|.ansible_lint | Ruft den Linter von Ansible auf. +Der Output wird dann in der CI gezeigt und kann den Stil der Playbooks verbessern. +|.ansible_playbook_validate | Validiert das die Playbooks ausgeführt werden können und syntaktisch Sinn ergeben. +|.ansible_playbook_run | Führt die Playbooks auf dem Inventar aus. +|=== + +.Variables +|=== +|Name |Description | Default Value +|SSH_PRIVATE_KEY | SSH Key der von Ansible benutzt wird, um sich im Inventar anzumelden. +!! +Nicht in den .gitlab.yml setzen. sondern in CI Maintainer muss in Settings setzen. | Nicht gesetzt muss in die Gitlab CI Variablen in den Settings. +|PLAYBOOK_PATH | Path zum Playbook das ausgeführt werden soll | "playbook.yml" +|INVENTORY_PATH | Path zum Inventory das ausgeführt werden soll | "inventory.yml" +|EXTRA_ARGS | Extra Argumente für die Scripte | "" +|=== + +.Ansible-template +[source,yaml] +---- +include::{sourcedir}/ansible.gitlab-ci.yml[] +---- \ No newline at end of file diff --git a/documentation/document.adoc b/documentation/document.adoc index 2144873..cb69215 100644 --- a/documentation/document.adoc +++ b/documentation/document.adoc @@ -34,6 +34,10 @@ toc::[] // ########################################################################### include::chapters/generalInformation.adoc[leveloffset=1] +== Ansible Templates + +include::chapters/templates/ansible.adoc[leveloffset=2] + == Container Templates include::chapters/templates/container-publish.adoc[leveloffset=2] From a27aae564c07fa3d76bc6c0df0cfa48c5d0523a0 Mon Sep 17 00:00:00 2001 From: Wolfram Gulde Date: Fri, 10 Dec 2021 09:43:23 +0000 Subject: [PATCH 2/2] docs(Ansible): Corrections from Wolfram --- documentation/chapters/templates/ansible.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/chapters/templates/ansible.adoc b/documentation/chapters/templates/ansible.adoc index ec6965c..5055fd7 100644 --- a/documentation/chapters/templates/ansible.adoc +++ b/documentation/chapters/templates/ansible.adoc @@ -11,7 +11,7 @@ Erwartet das $SSH_PRIVATE_KEY in den Gitlab CI Variablen gesetzt ist. |Name |Description |.ansible_lint | Ruft den Linter von Ansible auf. Der Output wird dann in der CI gezeigt und kann den Stil der Playbooks verbessern. -|.ansible_playbook_validate | Validiert das die Playbooks ausgeführt werden können und syntaktisch Sinn ergeben. +|.ansible_playbook_validate | Validiert, ob die Playbooks ausgeführt werden können und syntaktisch Sinn ergeben. |.ansible_playbook_run | Führt die Playbooks auf dem Inventar aus. |=== @@ -20,7 +20,7 @@ Der Output wird dann in der CI gezeigt und kann den Stil der Playbooks verbesser |Name |Description | Default Value |SSH_PRIVATE_KEY | SSH Key der von Ansible benutzt wird, um sich im Inventar anzumelden. !! -Nicht in den .gitlab.yml setzen. sondern in CI Maintainer muss in Settings setzen. | Nicht gesetzt muss in die Gitlab CI Variablen in den Settings. +Nicht in .gitlab.yml setzen. Statt dessen durch den CI Maintainer in den Gitlab Settings setzen lassen. | Nicht gesetzt. Muss in den Gitlab CI Variablen in den Settings gesetzt werden. |PLAYBOOK_PATH | Path zum Playbook das ausgeführt werden soll | "playbook.yml" |INVENTORY_PATH | Path zum Inventory das ausgeführt werden soll | "inventory.yml" |EXTRA_ARGS | Extra Argumente für die Scripte | ""