Hi Aaron,
did you managed to have ansible rollback deployment on all hosts when
anyone failed in any task ?
On Friday, 17 November 2017 19:22:59 UTC+5:30, Aaron Falk wrote:
>
> There is no possibility to run the rescue part for all hosts if one host
> fails. I'm working on my deployment for a website. I want to deploy the
> site to multiple hosts. If something fails for one host than all hosts
> should not be deployed. Therefore, a rollback on all hosts should happen.
> The configuration "any_errors_fatal" is not working for it.
>
> I am using ansible 2.4.1.0
>
> Here the steps to reproduce:
>
> - block:
> - name: Update database schema
> shell: cd '{{ ansible_web_deployment_webroot }}/releases/{{
> ansible_web_deployment_release }}' && php7.1 console.php
> orm:schema-tool:update --force
> when: inventory_hostname in groups['schema']
> - name: Deployment
> debug:
> msg: 'Deploying'
> rescue:
> - name: Rollback
> debug:
> msg: 'Rollback'
> any_errors_fatal: true
>
>
> Expected results:
>
> PLAY [test]
> ********************************************************************
>
> TASK [Gathering Facts]
> *********************************************************
> ok: [x1.example.com]
> ok: [x2.example.com]
> ok: [x3.example.com]
> ok: [x4.example.com]
>
> TASK [ansible_web_deployment : Update database schema]
> *************************
> skipping: [x2.example.com]
> skipping: [x3.example.com]
> skipping: [x4.example.com]
> fatal: [x1.example.com]: FAILED! => {"changed": true, "cmd": "cd
> '/var/www/x.example.com/releases/20171113081452' && php7.1 console.php
> orm:schema-tool:update --force", "delta": "0:00:00.007578", "end":
> "2017-11-13 08:15:05.709148", "failed": true, "msg": "non-zero return code",
> "rc": 2, "start": "2017-11-13 08:15:05.701570", "stderr": "/bin/sh: 1: cd:
> can't cd to /var/www/x.example.com/releases/20171113081452", "stderr_lines":
> ["/bin/sh: 1: cd: can't cd to
> /var/www/x.example.com/releases/20171113081452"], "stdout": "",
> "stdout_lines": []}
>
> TASK [ansible_web_deployment : Rollback] *****************************
> ok: [x1.example.com] => {
> "msg": "Rollback"
> }
> ok: [x2.example.com] => {
> "msg": "Rollback"
> }
> ok: [x2.example.com] => {
> "msg": "Rollback"
> }
> ok: [x4.example.com] => {
> "msg": "Rollback"
> }
>
> PLAY RECAP
> *********************************************************************
> 127.0.0.1 : ok=2 changed=0 unreachable=0 failed=0
> x1.example.com : ok=2 changed=1 unreachable=0 failed=1
> x2.example.com : ok=2 changed=1 unreachable=0 failed=1
> x3.example.com : ok=2 changed=1 unreachable=0 failed=1
> x4.example.com : ok=2 changed=1 unreachable=0 failed=1
>
>
> Actual results:
>
> PLAY [test]
> ********************************************************************
>
> TASK [Gathering Facts]
> *********************************************************
> ok: [x1.example.com]
> ok: [x2.example.com]
> ok: [x3.example.com]
> ok: [x4.example.com]
>
> TASK [ansible_web_deployment : Update database schema]
> *************************
> skipping: [x2.example.com]
> skipping: [x3.example.com]
> skipping: [x4.example.com]
> fatal: [x1.example.com]: FAILED! => {"changed": true, "cmd": "cd
> '/var/www/x.example.com/releases/20171113081452' && php7.1 console.php
> orm:schema-tool:update --force", "delta": "0:00:00.007578", "end":
> "2017-11-13 08:15:05.709148", "failed": true, "msg": "non-zero return code",
> "rc": 2, "start": "2017-11-13 08:15:05.701570", "stderr": "/bin/sh: 1: cd:
> can't cd to /var/www/x.example.com/releases/20171113081452", "stderr_lines":
> ["/bin/sh: 1: cd: can't cd to
> /var/www/x.example.com/releases/20171113081452"], "stdout": "",
> "stdout_lines": []}
>
> TASK [ansible_web_deployment : Restart services] *****************************
> ok: [x2.example.com] => {
> "msg": "Deploying"
> }
> ok: [x2.example.com] => {
> "msg": "Deploying"
> }
> ok: [x4.example.com] => {
> "msg": "Deploying"
> }
>
> TASK [ansible_web_deployment : Rollback] *****************************
> ok: [x1.example.com] => {
> "msg": "Rollback"
> })
>
> PLAY RECAP
> *********************************************************************
> 127.0.0.1 : ok=2 changed=0 unreachable=0 failed=0
> x1.example.com : ok=2 changed=1 unreachable=0 failed=1
> x2.example.com : ok=2 changed=1 unreachable=0 failed=0
> x3.example.com : ok=2 changed=1 unreachable=0 failed=0
> x4.example.com : ok=2 changed=1 unreachable=0 failed=0
>
>
> How can I achieve that all hosts go in rescue mode when a single host
> throws an exception?
>
> If you have a look at the Github issue 14024
> <https://github.com/ansible/ansible/issues/14024>, you'll see that this
> should work.
> Unfortunately I was not able to get it to work.
>
> Thank you for your input.
>
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/24857048-22b4-4645-aaec-5dd89846fed4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.