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

@ -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 # BEGIN ANSIBLE MANAGED BLOCK
[linode] [linode]
root@172.104.8.49 root@172.104.8.72
# END ANSIBLE MANAGED BLOCK # END ANSIBLE MANAGED BLOCK

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

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

Loading…
Cancel
Save