You are definitely overcomplicating it.

There's no reason to need the register really.

- shell: yum -y install python-simplejson

Yum naturally is smart enough to not do anything if the package is already
installed, so it takes care of the "idempotence" (I kinda still hate the
over-complexity of that word, but it's a word) for you.




On Wed, Apr 16, 2014 at 1:36 AM, Christian Rusa <[email protected]>wrote:

> To be honest, I would also be interested in a solution to this.
>
> Of course all the machines, that I install myself (preseed, kickstart,
> ...) meet the requirements for ansible.
>
> For already existing machines which should be managed by us, the
> requirements are somewhere in the middle of met or unmet.
>
> To my knowledge python-simplejson (required on Python 2.4 boxes) can only
> be installed using the raw module and not with the apt or yum module.
> Therefore this is a task which I'd not like to be executed on every run.
>
> Maybe the first task in the list could be an ansible ping and if it fails
> do some brute-force raw commands.
> ....
> And as writing this I answered my question :-)
>
> My prototype looks like this:
>
> - hosts: all
>   user: root
>   tasks:
>   - name: ping
>     ping:
>     register: result
>   - name: conditional task
>     raw: here_your_command
>     when: result|failed
>
>
> Cheers
> Christian
>
>
>
> On 04/15/2014 05:34 PM, Dick Davies wrote:
>
>> On 15 April 2014 09:24, Joachim Friberg <[email protected]> wrote:
>>
>>  For example I want to do a yum install mysql on a server, but this server
>>> does not have python-simplejson and/or other packages that is neccesary
>>> for
>>> Ansible.
>>>
>> In this specific case you'd just assert the python-simplejson package
>> exists right?
>> If it's already installed then nothing happens, and you'll be able to
>> skip on to the
>> other tasks.
>>
>> If of course you're in a catch-22 situation (can't run ansible to set
>> up ansible pre-requisites),
>> then you'll need to seed your base image with what's required.
>>
>> For example, my kickstarts bring up a machine with
>>
>> * SSHd enabled and tcp/22 inbound permitted on the local firewall
>> * an 'ansible' account with a pre-defined list of SSH keys in its
>> authorised_keys file
>> * passwordless sudo configured for that account
>>
>> Everything else is managed by Ansible.
>>
>> This general approach also applies to CM with puppet, chef, etc.
>> (which typically
>> have much more requirements).
>>
>>
>
> --
> toscom - the open source company
>
> Christian Rusa
> Breiteneckergasse 32                    1230 Wien
> Mobil: 0699 10205595                     Fax: 01 9249633
> www.toscom.at                           [email protected]
>
>
> --
> 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/534E16E8.1050305%40toscom.at.
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CA%2BnsWgzxqTe_VgyjAXpz81FVzBfTbrfAjUyCKFZtZPYo0jfjKA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to