<div dir="ltr">I have automated just about anything you can think of WRT deploying gluster in shell script and python, I haven&#39;t had a chance to port any of it to a tool though.  I don&#39;t have an opinion one way or another which tool you want to use but I would be happy to learn whatever is chosen and help out this.  My deployment scripts that I currently use to deploy / configure gluster would probably be a good starting point, at least we can pull the list of what needs to be done and the shell commands to do it.  Here is what I do for every automated RHS deployment(if applicable, its all configurable), maybe this is a good starting point:<div>
<br></div><div>-setup samba</div><div>-configure 10G NW and tuning</div><div>-run env setup server &amp;&amp; clients</div><div>-set tuning<br></div><div>-peer probe</div><div>-volume create</div><div>-volume start</div><div>
-enable volume quota</div><div>-set volume options</div><div>-mount clients</div><div><br></div><div>Here is a snip of env setup servers as I think this will have most of what we need to pull from:</div><div><br></div><div>
<div>    # pvcreate and create a list of disks</div><div>    disk_list=&quot;&quot;</div><div>    for disk in $(egrep -v &#39;(name|vda|sda|dm|^$)&#39; /proc/partitions | awk \</div><div>    &#39;{print $4}&#39;); do</div>
<div>        pvcreate --dataalignment $dataalign -ff -y /dev/$disk</div><div>        disk_list=&quot;$disk_list /dev/$disk&quot;</div><div>    done</div></div><div><br></div><div>Here I assume that sda or vda are going to have the root fs and create PVs for bricks with whatever is left, and align them properly for a 256k stripe sized RAID.  I assume we would want to do something similar in the puppet/ansible/chef/whatever module?</div>
<div><br></div><div>-b</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Aug 19, 2014 at 12:29 PM, Michael Scherer <span dir="ltr">&lt;<a href="mailto:mscherer@redhat.com" target="_blank">mscherer@redhat.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I have been wondering about using a configuration management system to<br>
manage as much as possible on the infra side. The latest start of a<br>
discussion on backup showed that we do not really have a clear idea of<br>
what is installed, and that we would still need to do thing manually to<br>
install the backup system, which is a error prone process, and a bit<br>
slower ( at least for me, I do not type as fast as a script can react ).<br>
<br>
Justin also pointed to me the documentation he wrote for installing<br>
jenkins, most of it that could be properly automated<br>
( <a href="http://www.gluster.org/community/documentation/index.php/Jenkins_setup" target="_blank">http://www.gluster.org/community/documentation/index.php/Jenkins_setup</a><br>
).<br>
<br>
So we have been quickly exchanging a couple of mail on using something<br>
to automate things, but that&#39;s not something that should be decided or<br>
discussed in private, so here we are, we should discuss this publically.<br>
<br>
<br>
First, the main question is to know if people here are familiar with<br>
such systems. I already deployed in the past everything just to find out<br>
that I was the only one to know it, which kinda reduced the bus factor<br>
to 1 and blocked others into doing system administration, and putting<br>
myself in the position of a bottleneck. Even if I was efficient, I was<br>
still blocking stuff.<br>
<br>
I am not sure if people on this list know the ideas and the concepts<br>
( even on a very high level point of view ), but since not everybody is<br>
sysadmin, so if it sound like a foreign language, do not hesitate to<br>
ask, i will be happy to clarify :)<br>
<br>
The idea is to use a system ( puppet, ansible, chef, etc ) to describe<br>
the infrastructure in a high level way, and have the system do what is<br>
needed to have it conform to the specification. Since that&#39;s done using<br>
text file, that&#39;s VCS friendly, and permit to use the regular advantage<br>
of source code ( ie, audit by logging, review, etc ). This also permit<br>
to duplicate the configuration quite easily if done well, which permit<br>
to test upgrade or anything. And of course, since that&#39;s automated,<br>
there is no way that a human forget a step. There is various possible<br>
architecture ( client/server, without or with agent, etc ), and we can<br>
have the infrastructure being partially managed and still do thing<br>
manually.<br>
<br>
Then once we answered this question &quot;does it rin a bell to most people<br>
and would it be useful&quot; ), the next step will be to decide the<br>
architecture to manage everything, which is usually constrained by the<br>
software we want to use. I usually try to side step this question by<br>
asking others questions such as :<br>
- what are the needs ( ie, purely configuration or should we expect<br>
orchestration of one off task on a regular basis )<br>
- do we have contraints, and what are they ? ( like &quot;we need to manage<br>
hurd system&quot;, or &quot;we will add windows system in the future&quot; )<br>
- is there people familiar with a existing system, and wanting to help.<br>
<br>
So, in term of needs, I see several things :<br>
- managing the infra. That mean making sure the configuration is<br>
consistent, but also deploy new systems and make sure they are correct<br>
( ie selinux, proper ssh keys, etc ).<br>
- running some specific tasks on a regular basis. For example, upgrade,<br>
etc. So far, besides upgrades ( and that can be done by cron ), i do not<br>
see much repeated tasks, but maybe I am wrong.<br>
<br>
Then once we have this, we can make proposals, see if something is<br>
missing and iterate on it. And deploy, converting stuff as we go, and<br>
using the system for new stuff..<br>
<br>
On term of constraints, I suppose that we need something that work on<br>
RHEL and Netbsd. I assume sooner or later, we may add different builders<br>
on debian, or differents arch. I do remember seeing something about osx,<br>
but that&#39;s likely not much different than netbsd in term of tools ( even<br>
if I expect netbsd to have more, but from a portage point of view, both<br>
are less problematic than windows ). I do not see much more, I would<br>
strongly express a preference for something packaged on both platform.<br>
<br>
And in term of who know what, well, I can only answer for me, that I<br>
know ansible and puppet quite well, but I am open to others systems.<br>
<br>
So, any comments ?<br>
<span class="HOEnZb"><font color="#888888">--<br>
Michael Scherer<br>
Open Source and Standards, Sysadmin<br>
</font></span><br>_______________________________________________<br>
Gluster-infra mailing list<br>
<a href="mailto:Gluster-infra@gluster.org">Gluster-infra@gluster.org</a><br>
<a href="http://www.gluster.org/mailman/listinfo/gluster-infra" target="_blank">http://www.gluster.org/mailman/listinfo/gluster-infra</a><br>
<br></blockquote></div><br></div>