diff --git a/ansible.cfg b/ansible.cfg index e6c4922..7854967 100644 --- a/ansible.cfg +++ b/ansible.cfg @@ -1,2 +1,4 @@ [defaults] -filter_plugins = plugins/filter +roles_path = roles +vault_password_file=tests/vault_key.sh +;filter_plugins = plugins/filter diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100755 index 0000000..734a26d --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,18 @@ +--- +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 diff --git a/host_vars/localhost.yml b/host_vars/localhost.yml new file mode 100644 index 0000000..d2ffd79 --- /dev/null +++ b/host_vars/localhost.yml @@ -0,0 +1,23 @@ +$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 diff --git a/playbook.yml b/playbook.yml new file mode 100644 index 0000000..5064363 --- /dev/null +++ b/playbook.yml @@ -0,0 +1,107 @@ +--- +- 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 diff --git a/plugins/filter/__init__.py b/plugins/filter/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/plugins/filter/filters.py b/roles/docker_s3_backup/filter_plugins/filters.py similarity index 100% rename from plugins/filter/filters.py rename to roles/docker_s3_backup/filter_plugins/filters.py diff --git a/tests/ansible.cfg b/tests/ansible.cfg index 9acce73..7854967 100644 --- a/tests/ansible.cfg +++ b/tests/ansible.cfg @@ -1,4 +1,4 @@ [defaults] roles_path = roles vault_password_file=tests/vault_key.sh -filter_plugins = plugins/filter +;filter_plugins = plugins/filter