skylab
/
skylab-ansible
Archived
2
0
Fork 0

Add cloud deployment playbook for terraform operations

This commit is contained in:
Ethan Paul 2023-04-05 01:39:25 -04:00
parent 875d8f1538
commit d901c1d940
Signed by: enpaul
GPG Key ID: DAF443CA3A2FA6FA
3 changed files with 56 additions and 1 deletions

View File

@ -2,3 +2,17 @@
skylab_mgmt_keys:
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP5TGKururOa1Y+cbv8AWXYI5zhfZCDV0fsBG+33IYUc enpaul@ansible.voyager
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBf7i/8hSJDYnoD95noCJJVtSxxCp9N5EmnshALufiwm enpaul@ansible.opportunity
skylab_tfstate_backend:
hostname: cluster.lab.enp.one
username: terraform
schema: terraform
port: 32421
password: !vault |
$ANSIBLE_VAULT;1.1;AES256
30313365393065316563323363663135313438616461356439366632303636343735653033363930
6334613931376566363064663539643639326363663933610a306138616362376435386466306538
30626330613932363339363438356430613461313335333536623931343436353330393433373630
3631343463616631380a386661336534663033383637666538316665303962353034376232356235
65323339353563623431666535366465353133343137653232326534326436323661636536373564
3466633762303966366366653531613261336561356531636461

View File

@ -11,4 +11,6 @@ tags: []
repository: https://vcs.enp.one/skylab/skylab-ansible/
build_ignore: []
dependencies: {}
dependencies:
community.general: ">=6.5.0,<7.0"
ansible.posix: ">=1.5.1,<2.0"

View File

@ -0,0 +1,39 @@
---
- name: Provision DigitalOcean cloud
hosts: localhost
vars:
terraform_backend: "postgres://{{ skylab_tfstate_backend.username }}:{{ skylab_tfstate_backend.password }}@{{ skylab_tfstate_backend.hostname }}:{{ skylab_tfstate_backend.port }}/{{ skylab_tfstate_backend.schema }}"
tasks:
- name: Deploy terraform config
block:
- name: Create temp plan file
changed_when: false
ansible.builtin.tempfile:
state: file
prefix: skylab
suffix: tfplan
register: _tfplan_tempfile
- name: Initialize terraform backend and generate plan file
community.general.terraform:
state: planned
project_path: terraform/
backend_config:
conn_str: "{{ terraform_backend }}"
force_init: true
init_reconfigure: true
plan_file: "{{ _tfplan_tempfile.path }}"
- name: Apply terraform plan
community.general.terraform:
state: present
project_path: terraform/
backend_config:
conn_str: "{{ terraform_backend }}"
plan_file: "{{ _tfplan_tempfile.path }}"
always:
- name: Remove temp plan file
changed_when: false
ansible.builtin.file:
path: "{{ _tfplan_tempfile.path }}"
state: absent