31 lines
1.4 KiB
YAML
31 lines
1.4 KiB
YAML
kind: pipeline
|
|
name: Serverctl
|
|
|
|
steps:
|
|
- name: terraform plan
|
|
image: alpine
|
|
environment:
|
|
HCLOUD_TOKEN:
|
|
from_secret: serverctl_hcloud_token
|
|
ACCESS_KEY:
|
|
from_secret: serverctl_access_key
|
|
SECRET_KEY:
|
|
from_secret: serverctl_secret_key
|
|
SSH_ZIP_KEY:
|
|
from_secret: serverctl_ssh_zip_key
|
|
HCLOUD_SSH_KEY_ID:
|
|
from_secret: serverctl_hcloud_ssh_key_id
|
|
commands:
|
|
- apk --update add curl zip ansible python3
|
|
- cd infrastructure && ./unzip-ssh-keys.sh "$SSH_ZIP_KEY" && cd ..
|
|
- curl --silent --output terraform.zip "https://releases.hashicorp.com/terraform/1.1.6/terraform_1.1.6_linux_amd64.zip"
|
|
- unzip terraform.zip ; rm -f terraform.zip; chmod +x terraform
|
|
- mkdir -p ${HOME}/bin ; export PATH=${PATH}:${HOME}/bin; mv terraform ${HOME}/bin/
|
|
- terraform -v
|
|
- cd infrastructure/create-resources
|
|
- terraform init -backend-config="access_key=$ACCESS_KEY" -backend-config="secret_key=$SECRET_KEY"
|
|
- terraform validate
|
|
- terraform apply -auto-approve -var "hcloud_token=$HCLOUD_TOKEN" -var "pvt_key=../ssh_keys/id_ed25519" -var "pub_key=../ssh_keys/id_ed25519.pub" -var "hcloud_serverctl_ssh_key_id=$HCLOUD_SSH_KEY_ID"
|
|
- cd ansible
|
|
- /usr/bin/ansible-playbook -u root --key-file '../../ssh_keys/id_ed25519' -e 'pub_key=../../ssh_keys/id_ed25519.pub' site.yml
|