wip
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
|
|
||||||
@ -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
|
||||||
|
|||||||
Loading…
Reference in New Issue