chore(Ansible): Hinzufügen von Ansible deployment CI Templates

This commit is contained in:
mfeix 2021-12-03 17:02:37 +01:00
parent 287fc78e5b
commit 41ec1bbb5c
No known key found for this signature in database
GPG Key ID: 04D016E104A25F03
3 changed files with 72 additions and 0 deletions

35
ansible.gitlab-ci.yml Normal file
View File

@ -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

View File

@ -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[]
----

View File

@ -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]