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.
