From: Thierry Delamare <t.delamare@laposte.net>
To: Loic Dachary <loic@dachary.org>
Cc: Ceph Development <ceph-devel@vger.kernel.org>
Subject: Re: aarch64 conditional ansible stanza
Date: Thu, 7 Apr 2016 17:49:10 +0200 [thread overview]
Message-ID: <57068176.3090706@laposte.net> (raw)
In-Reply-To: <570669A4.2010309@dachary.org>
On 04/07/2016 04:07 PM, Loic Dachary wrote:
>
> On 07/04/2016 15:58, Thierry Delamare wrote:
>>
>> On 04/07/2016 08:46 AM, Loic Dachary wrote:
>>> Hi Thierry,
>>>
>>> In order to only install a template on architectures that are not aarch64, I changed
>>>
>>> - name: Add sources list
>>> template:
>>> dest: /etc/apt/sources.list
>>> src: "../../templates/apt/sources.list.{{ ansible_distribution_release | lower }}"
>>> owner: root
>>> group: root
>>> mode: 0644
>>> register: sources
>>>
>>> into
>>>
>>> - name: Add sources list
>>> template:
>>> dest: /etc/apt/sources.list
>>> src: "../../templates/apt/sources.list.{{ ansible_distribution_release | lower }}"
>>> owner: root
>>> group: root
>>> mode: 0644
>>> register: sources
>>> when: {{ansible_architecture}} != aarch64
>>>
>>> Is there a better way to do that ?
>> Bonjour Loic,
>>
>> Using when statement is the correct way to add conditions to a task,
>> but don't forget that the when clause contains a Jinja2 expression (not like a module argument),
>> Thus the correct expression should rather be « when: ansible_architecture != 'aarch64' ».
> Indeed, the previous attempt failed :-) Here is a more elaborate version that also excludes some packages that are not available in the aarch64 repositories. How does that look ?
>
> https://github.com/ceph/ceph-cm-ansible/pull/224/commits/80e1cb2f3688393f4238268a543e6c3ab19bae75
>
That looks good to me, but.
You could also use the already existing scheme for defining vars or even
including plays depending on distribution or (if you take care of it)
architecture.
I mean that you could create a
roles/testnode/tasks/setup-ubuntu-aarch32.yml with only the needed tasks
(instead of conditionally exclude most of them in
roles/testnode/tasks/setup-ubuntu.yml) and change
roles/testnode/tasks/main.yml to add « - { include:
setup-ubuntu-aarch32.yml, when: ansible_distribution == "Ubuntu" and
ansible_architecture == 'aarch32' } » (maybe you also want to rename
setup-ubuntu.yml as setup-ubuntu-aarch64.yml and change main.yml
accordingly)
If the common part between aarch32 and aarch64 duplicate to much, keep a
common setup-ubuntu.
Similarly for packages lists (more usual), add
roles/testnode/vars/ubuntu-aarch64.yml and ubuntu-aarch32.yml for
respective specific packages and use an include_vars directive using
ansible_distribution and ansible_architecture once in
roles/testnode/tasks/vars.yml instead of many when clauses.
PS: Maybe you could teach me how to boostrap a working env next time we
cowork.
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2016-04-07 15:49 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-07 6:46 aarch64 conditional ansible stanza Loic Dachary
2016-04-07 13:58 ` Thierry Delamare
2016-04-07 14:07 ` Loic Dachary
2016-04-07 15:49 ` Thierry Delamare [this message]
2016-04-07 16:09 ` Loic Dachary
2016-04-07 16:35 ` Thierry Delamare
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=57068176.3090706@laposte.net \
--to=t.delamare@laposte.net \
--cc=ceph-devel@vger.kernel.org \
--cc=loic@dachary.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.