added cron job to delete any linode instances at midnight

pull/19/head
Cian Hatton 3 years ago
parent 797ae22431
commit a1c31abd6a

@ -7,10 +7,11 @@ on:
env:
VAULT_PASSWORD: "${{ secrets.VAULT_PASSWORD }}"
SSH_PUB: "${{ secrets.SSH_PUB }}"
ANSIBLE_FORCE_COLOR: '1'
jobs:
tests:
name: Tests
name: Test Ansible Playbooks
runs-on: ubuntu-latest
steps:
- name: Create SSH pub
@ -33,26 +34,19 @@ jobs:
- uses: actions/setup-python@v4
with:
python-version: 3.8.9
- name: Install test dependencies.
run: |
pip install -r requirements.txt
run: pip install -r requirements.txt
- name: Syntax Check
run: |
ansible-playbook setup-linode.yml --syntax-check
ansible-playbook setup-homelab.yml --syntax-check
ansible-playbook verify-homelab.yml --syntax-check
- name: Setup Linode Instance
run: |
ansible-playbook setup-linode.yml
env:
ANSIBLE_FORCE_COLOR: '1'
run: ansible-playbook setup-linode.yml
- name: Setup Home Lab
run: |
ansible-playbook setup-homelab.yml
env:
ANSIBLE_FORCE_COLOR: '1'
run: ansible-playbook setup-homelab.yml
- name: Verify Home Lab
run: |
ansible-playbook verify-homelab.yml
env:
ANSIBLE_FORCE_COLOR: '1'
run: ansible-playbook verify-homelab.yml
- name: Delete Linode Instance
run: ansible-playbook setup-linode.yml --extra-vars "state=absent"

@ -0,0 +1,41 @@
---
name: Delete test linode instance
on:
schedule:
- cron: "0 0 * * *" # delete at midnight every day
env:
VAULT_PASSWORD: "${{ secrets.VAULT_PASSWORD }}"
SSH_PUB: "${{ secrets.SSH_PUB }}"
ANSIBLE_FORCE_COLOR: '1'
jobs:
delete-linode-instance:
name: Delete Linode Instance
runs-on: ubuntu-latest
steps:
- name: Create SSH pub
run: |
echo "creating ~/.ssh/id_rsa.pub file"
mkdir -p ~/.ssh/
echo "$SSH_PUB" > ~/.ssh/id_rsa.pub
- name: Install SSH key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_KEY }}
known_hosts: ${{ secrets.KNOWN_HOSTS }}
- name: Check out the codebase.
uses: actions/checkout@v3
- name: Prepare Test Files
run: |
mv tests/.vault-pass.sh ./.vault-pass.sh
mv tests/ansible.cfg ./ansible.cfg
mv tests/hosts.ini ./hosts.ini
- uses: actions/setup-python@v4
with:
python-version: 3.8.9
- name: Install test dependencies.
run: pip install -r requirements.txt
- name: Delete Linode Instance
run: ansible-playbook setup-linode.yml --extra-vars "state=absent"

@ -9,5 +9,5 @@ cianhatton@qnap
# BEGIN ANSIBLE MANAGED BLOCK
[linode]
root@172.104.8.49
root@172.104.8.72
# END ANSIBLE MANAGED BLOCK

@ -12,7 +12,7 @@
root_pass: "{{ password }}"
authorized_keys: "{{ ssh_keys }}"
group: servers
state: present
state: "{{ state }}"
register: my_linode
- name: Wait for SSH to come up

@ -3,3 +3,5 @@
become: true
roles:
- role: 'roles/setup_linode'
vars:
state: preset

Loading…
Cancel
Save