CEPH filesystem development
 help / color / mirror / Atom feed
From: Loic Dachary <loic@dachary.org>
To: Thierry Delamare <t.delamare@laposte.net>
Cc: Ceph Development <ceph-devel@vger.kernel.org>
Subject: Re: aarch64 conditional ansible stanza
Date: Thu, 7 Apr 2016 18:09:33 +0200	[thread overview]
Message-ID: <5706863D.5050500@dachary.org> (raw)
In-Reply-To: <57068176.3090706@laposte.net>



On 07/04/2016 17:49, Thierry Delamare wrote:
> 
> 
> 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.

I did that, it looks better :-)

> 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.

I'm not sure I get where the simplification is. When I try this, I end up with more indirection levels and it feels more complicated.

> PS: Maybe you could teach me how to boostrap a working env next time we cowork.

You should be able to follow the HOWTO at http://dachary.org/?p=3939 when you get a chance :-) Or I'll show you.

Cheers

> 
> -- 
> 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
> 

-- 
Loïc Dachary, Artisan Logiciel Libre
--
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

  reply	other threads:[~2016-04-07 16:09 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
2016-04-07 16:09       ` Loic Dachary [this message]
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=5706863D.5050500@dachary.org \
    --to=loic@dachary.org \
    --cc=ceph-devel@vger.kernel.org \
    --cc=t.delamare@laposte.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox