50 lines
1.2 KiB
YAML
50 lines
1.2 KiB
YAML
image: ubuntu:focal
|
|
stages:
|
|
- lint
|
|
- test
|
|
- play
|
|
before_script:
|
|
# Get the packages we need
|
|
- apt-get update
|
|
- apt-get install openssh-client python3-docker python3-pip python-is-python3 -y
|
|
- pip install ansible ansible-lint
|
|
# Dump our key
|
|
- eval $(ssh-agent -s)
|
|
- echo "$ANSIBLE_SSH_KEY" | tr -d '\r' | ssh-add -
|
|
- mkdir -p ~/.ssh
|
|
- chmod -R 0700 ~/.ssh
|
|
# Dump the vault password
|
|
- touch /vaultpw
|
|
- chmod 0600 /vaultpw
|
|
- echo "$ANSIBLE_VAULT_PASSWORD" > /vaultpw
|
|
# Fix perms on the playbook root
|
|
- chmod -R 0750 .
|
|
# Get ready for execution
|
|
- ansible-galaxy install -r roles/requirements.yml -p roles
|
|
|
|
Lint:
|
|
allow_failure: yes
|
|
stage: lint
|
|
script:
|
|
- ansible-lint --version
|
|
- ansible-lint site.yml
|
|
|
|
Test:
|
|
allow_failure: yes
|
|
stage: test
|
|
script:
|
|
- ansible-playbook --skip-tags no-test -C site.yml --vault-password-file /vaultpw
|
|
|
|
Play_Against_Pis:
|
|
stage: play
|
|
script:
|
|
- ansible-playbook -l pis site.yml --vault-password-file /vaultpw
|
|
Play_Against_Desktops:
|
|
stage: play
|
|
script:
|
|
- ansible-playbook -l desktop site.yml --vault-password-file /vaultpw
|
|
Play_Against_Production:
|
|
stage: play
|
|
script:
|
|
- ansible-playbook -l prod site.yml --vault-password-file /vaultpw
|