pull/14/head
Cian Hatton 3 years ago
parent a0132ce421
commit 812bcbcc88

@ -1,4 +0,0 @@
[defaults]
roles_path = roles
vault_password_file=tests/vault_key.sh
;filter_plugins = plugins/filter

@ -1,18 +0,0 @@
---
version: '3.2'
services:
portainer:
image: portainer/portainer-ce
container_name: portainer
ports:
- 9000:9000
volumes:
- portainer_data:/data
- some_volume:/some_dir
- /var/run/docker.sock:/var/run/docker.sock
volumes:
some_volume:
portainer_data:
external: true
name: portainer_data

@ -1,23 +0,0 @@
$ANSIBLE_VAULT;1.1;AES256
31343237643365393335643262646139363037616365623238316536313238386237353436643738
3332376365393138633962373132633562363035396161650a323039646238373162333366353533
37333238643437623538343630393065313463313038616538613838366638636433313637313630
3733623838373864320a373636303030373737336265353165373463306233333033393266343838
31323634313531343262323561636438326166343461373133393166303630303865316661356165
64366435343933396131313665336437363234393239663831363033356433383330323964613833
36346436383739623163343130376465333465316139303437666333386633313132336234383936
65353437336637353739373837343766333266396263396562366463626332363061383435353132
34616134396136333266323930343866663332373864623537623765303435366331613466376137
63346337303461623036306362306235366365646137316165376634316230396239623132363337
35363932663361313533663436633532313732646564663463393233316231623361336332336135
39356338363336336231643661313062303734316539653031313630363866303464643438653035
37393039623961386539303235636562653130343237336332643639346631326633363366373466
62356536356664353466383131306664653132393837663635366466613665626535323930366637
38646263326264313363386634363834626638383563346361386165323430383266646631626362
64303263383138353739656534623734623638653438353666623464656461316636626564326536
34616163626539383265353963333734313363343162663434356337393266313637323732346231
33373835373465666637663330653337373130373732303632326530336132333236313466653239
30383632363337333833666132363563363361623865616134613538373439353836346366353065
34356134633038653839333430313738613531653634333430373635373239653362393461306330
35326532303432316636666134353534626139316331333538356165313965613739653665616237
3165353731626130666639346263333865316362623134373463

@ -1,107 +0,0 @@
---
- hosts: localhost
connection: local
become: true
tasks:
# - debug: msg="{{ 'test' | a_filter }}"
- name: Install Docker Module for Python
pip:
name:
- docker
- docker-compose
- boto3
- name: Remove Portainer
docker_compose:
project_src: 'tests'
state: absent
- name: Remove portainer volume
docker_volume:
name: portainer_data
state: absent
- name: Create portainer volume
docker_volume:
name: portainer_data
state: present
- name: Deploy Portainer
docker_compose:
project_src: 'tests'
state: present
- name: Portainer | Wait for ready
uri:
url: http://localhost:9000
method: GET
status_code: 200
register: result
until: result.status == 200
retries: 60
delay: 1
- debug: msg="{{result}}"
- name: Register Portainer Admin User
uri:
url: http://localhost:9000/api/users/admin/init
method: POST
body:
Username: admin
Password: "adminadminadmin"
status_code: 200
body_format: json
register: result
until: result.status == 200
retries: 60
delay: 1
- name: Backup Portainer
include_role:
name: docker_s3_backup
vars:
container_backup: portainer
- name: Remove Portainer
docker_compose:
project_src: 'tests'
state: absent
- name: Remove portainer volume
docker_volume:
name: portainer_data
state: absent
- name: Restore Portainer Volume
include_role:
name: docker_s3_volume_restore
vars:
docker_backup_restore_latest_s3_key: true
docker_backup_s3_restores:
- volume_name: portainer_data
- name: Deploy Portainer
docker_compose:
project_src: 'tests'
state: present
- name: Auth as old user
uri:
url: http://localhost:9000/api/auth
method: POST
body:
Username: admin
Password: "adminadminadmin"
status_code: 200
body_format: json
register: result
until: result.status == 200
retries: 60
delay: 1
- assert:
that:
- result.status == 200

@ -0,0 +1,15 @@
#!/usr/bin/python
class FilterModule(object):
def filters(self):
return {
'keep_last': self._keep_last,
}
"""
_keep_last keeps the last n items of a list of lists
"""
def _keep_last(self, list_of_lists, num_to_keep):
lists_to_return = []
for list_items in list_of_lists:
lists_to_return.append(list_items[0:-num_to_keep])
return lists_to_return

@ -1,21 +0,0 @@
#!/usr/bin/python
import os
def main():
s3_result = eval(os.getenv("S3_RESULTS"))
num_backups_to_keep = int(os.getenv("NUM_BACKUPS_TO_KEEP"))
items_to_delete = []
for res in s3_result:
s3_keys = res["s3_keys"]
# fetch all of the backups before the desired number.
# these are the ones we want to delete.
items_to_delete.extend(s3_keys[0:-num_backups_to_keep])
for item in items_to_delete:
print(item)
if __name__ == "__main__":
main()

@ -1,10 +0,0 @@
#!/usr/bin/python
class FilterModule(object):
def filters(self):
return {
'a_filter': self.a_filter,
}
def a_filter(self, a_variable):
a_new_variable = a_variable + ' CRAZY NEW FILTER'
return a_new_variable

@ -5,8 +5,6 @@
- name: Determine backup timestamp. - name: Determine backup timestamp.
ansible.builtin.set_fact: backup_time="{{ ansible_date_time.iso8601 }}" ansible.builtin.set_fact: backup_time="{{ ansible_date_time.iso8601 }}"
- debug: msg="{{ 'test' | a_filter }}"
- name: Install Python dependencies - name: Install Python dependencies
ansible.builtin.pip: ansible.builtin.pip:
name: name:
@ -71,21 +69,9 @@
register: s3_list_outputs register: s3_list_outputs
with_items: "{{ volume_mounts }}" with_items: "{{ volume_mounts }}"
#- name: Copy Python Script - name: Find keys to delete.
# ansible.builtin.copy: set_fact:
# src: scripts/determine-s3-keys-to-delete.py s3_keys_to_delete: "{{ s3_list_outputs.results | map(attribute='s3_keys') | keep_last(docker_backup_retain_count) | flatten }}"
# dest: /tmp/determine-s3-keys-to-delete.py
# mode: 0775
# TODO: do this in a more native way rather than a python script reading env vars.
- name: Determine which backups should be deleted.
# ansible.builtin.script: /tmp/determine-s3-keys-to-delete.py
ansible.builtin.script: scripts/determine-s3-keys-to-delete.py
environment:
S3_RESULTS: "{{ s3_list_outputs.results }}"
NUM_BACKUPS_TO_KEEP: "{{ docker_backup_retain_count }}"
register: python_output
changed_when: false
- name: Delete old backups. - name: Delete old backups.
amazon.aws.aws_s3: amazon.aws.aws_s3:
@ -96,4 +82,4 @@
s3_url: "{{ docker_backup_aws_s3_url }}" s3_url: "{{ docker_backup_aws_s3_url }}"
object: "{{ item }}" object: "{{ item }}"
mode: delobj mode: delobj
with_items: "{{ python_output.stdout_lines }}" with_items: "{{ s3_keys_to_delete }}"

@ -1,4 +1,4 @@
[defaults] [defaults]
roles_path = roles roles_path = roles
vault_password_file=tests/vault_key.sh vault_password_file=tests/vault_key.sh
;filter_plugins = plugins/filter filter_plugins = plugins/filter

@ -4,7 +4,6 @@
become: true become: true
tasks: tasks:
# - debug: msg="{{ 'test' | a_filter }}"
- name: Install Docker Module for Python - name: Install Docker Module for Python
pip: pip:
name: name:

Loading…
Cancel
Save