[Server-devel] [XSCE] xsce and ansible
Miguel González
migonzalvar at activitycentral.com
Tue Oct 22 11:51:42 EDT 2013
(Sorry for cross posting)
On Mon, Oct 21, 2013 at 3:59 PM, Tim Moody <tim at timmoody.com> wrote:
> The weekly XSCE call (Thur 2PM) was lightly attended last week because
> many were on their way to SF. But we did spend some time on the question
> of moving to ansible as an installation mechanism and the means and timing
> of doing so. The consensus on the call was that we should make the move,
> but that it should be gradual rather than sudden enlightenment.
>
> It turns out that because the directory structures of xs-config (
> github.com/XSCE/xsce) and dxs (activitycentral/dxs ) are substantially
> different (everything in plugins.d in the former and in roles in the
> latter) there are no collisions in directory names, so dxs could just be
> copied into xs-config. So the process discussed is simply to combine both
> repos into xsce and then obsolete directories in plugins.d as confidence
> builds that the ansible playbook for a given feature works.
>
>
It sounds doable. But not sure how the transition will be. This is one
possible work breakdown in 3 phases:
Phase 1. A per service approach
I imagine we can substitute for example `named yes` in file xs-setup [1]
for something like `ansible-playbook -i ansible_hosts named.yml
--connection=local`.
```
num_ifaces=`ls /sys/class/net | wc | gawk '{print $1}'`
if [[ $num_ifaces > 2 ]]; then
- named yes
+ ansible-playbook -i ansible_hosts named.yml --connection=local
squid yes
gateway yes
dhcpd yes
xs-setup-network
touch /.olpcxs-net-configured
fi
```
And the same for xs-setup.conf.
Phase 2. xs-setup delegates entire sections to a playbook
Instead of per service playbooks we'll have a playbook for every section:
- gathering facts about network including interactive questions
- installing core services
- installation of additional services
- wrapping up
For example, for core services:
```
- num_ifaces=`ls /sys/class/net | wc | gawk '{print $1}'`
- if [[ $num_ifaces > 2 ]]; then
- ansible-playbook -i ansible_hosts named.yml --connection=local
- squid yes
- gateway yes
- dhcpd yes
- xs-setup-network
- touch /.olpcxs-net-configured
- fi
+ ansible-playbook -i ansible_hosts core_services.yml --connection=local
```
Phase 3. xs-setup is just an ansible launcher
```
#!/bin/bash
# xs-setup
ansible-playbook -i ansible_hosts xs.yml --connection=local
<EOF>
```
The main problem I see is how to share consistently information between
xs-setup and ansible worlds.
> For those on the call, does this summarize what was said? For those not
> on the call, does this sound like a viable plan?
>
> Tim
>
--
Miguel González
Activity Central: http://www.activitycentral.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.laptop.org/pipermail/server-devel/attachments/20131022/2dfc15a5/attachment.html>
More information about the Server-devel
mailing list