@flowerysong 

The point is, a CI tool such as Travis, Tower... will report error on that 
task, but actually there is no error at all (normal running). In addition, 
package installing task is just 0,5% of the whole deployment project and 
thinking deeper, every task does changes on the systems. Many ansible other 
modules I have used do work in --check mode, except package manager which I 
am reporting here. 

---------------------------------------  

Em quinta-feira, 10 de maio de 2018 02:06:38 UTC-3, flowerysong escreveu:
>
> On Thursday, May 10, 2018 at 12:11:02 AM UTC-4, js.a wrote:
>>
>> Hello guys.
>>
>> I'm here to bring an issue with Ansible dry-run (--check) mode. I have 
>> been facing a curious situation where package installation made using 
>> Playbooks and run in a dry-run mode is not working as expected. Using 
>> register+debug module it's possible to see that the package has been 
>> successfully installed, but when I try to use that installed package in 
>> later task, Ansible fails. 
>>
>> *My Playbook:* 
>>
>> ---
>> - hosts: logging
>>   become: yes
>>
>>   tasks:
>>     - name: Setting up EPEL
>>       yum: name=epel-release state=present
>>       register: inst
>>     - debug: var=inst
>>
>>     - name: Checking installation
>>       stat:
>>         path: /etc/yum.repos.d/epel.repo
>>       register: file
>>
>>     - fail:
>>         msg: "File epel.repo doesn't exist!"
>>       when: file.stat.exists == False
>>
>> *Result:* 
>>
>> [root@c7 projX]# ansible-playbook -i inventory epel.yml --check
>>
>> PLAY [logging] 
>> ***************************************************************************
>>
>> TASK [Gathering Facts] 
>> *******************************************************************
>> ok: [192.168.52.20]
>>
>> TASK [Setting up EPEL] 
>> *******************************************************************
>> changed: [192.168.52.20]
>>
>> TASK [debug] 
>> *****************************************************************************
>> ok: [192.168.52.20] => {
>>     "inst": {
>>         "changed": true,
>>         "changes": {
>>             "installed": [
>>                 "epel-release"
>>             ]
>>         },
>>         "failed": false,
>>         "results": []
>>     }
>> }
>>
>> TASK [Checking installation] 
>> *************************************************************
>> ok: [192.168.52.20]
>>
>> TASK [fail] 
>> ******************************************************************************
>> fatal: [192.168.52.20]: FAILED! => {"changed": false, "msg": *"File 
>> epel.repo doesn't exist!"*}
>>
>> PLAY RECAP 
>> *******************************************************************************
>> 192.168.52.20              : ok=4    changed=1    unreachable=0    
>> failed=1
>>
>>
>> ---------------------------------------------------------------------------
>>
>> If I take '--check' for dry-run out of the command it does work, but it's 
>> not the best approach for me once I'm planning to put this "checking task" 
>> in a CI software to "automate the automation". 
>>
>> My question is: is there any specific reason for that case (package 
>> installation) not to work with --check parameter? I've done further tests 
>> using Ubuntu and the Ansible's apt module but the same problem comes up. 
>>
>
> The whole point of check mode is that it doesn't make changes to the 
> system. If you want things to change (e.g. packages to install), don't run 
> in check mode.
>

-- 
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/19f62a98-3ae0-4515-9da1-8058a7805dba%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to