aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Giovanini <gabrielg.desouza@gmail.com>2019-03-07 20:30:39 -0300
committerGabriel Giovanini <gabrielg.desouza@gmail.com>2019-03-07 20:30:39 -0300
commit2dacc92f01056d24a0af49f007079a79825ff048 (patch)
tree46e752986660c79b50763e74e7c9f1f82f817286
parent43fcd5d0b29d8ba979f2864ea996aed330df6a5b (diff)
downloadgabrielgio.me-2dacc92f01056d24a0af49f007079a79825ff048.tar.gz
gabrielgio.me-2dacc92f01056d24a0af49f007079a79825ff048.tar.bz2
gabrielgio.me-2dacc92f01056d24a0af49f007079a79825ff048.zip
Add ansible-pull part 1
-rw-r--r--_posts/2019-03-03-welcome-to-my-blog.md (renamed from _posts/2019-03-03-welcome-to-my-blog.markdown)2
-rw-r--r--_posts/2019-03-07-ansible-part-1.md100
2 files changed, 101 insertions, 1 deletions
diff --git a/_posts/2019-03-03-welcome-to-my-blog.markdown b/_posts/2019-03-03-welcome-to-my-blog.md
index b40f49f..8973461 100644
--- a/_posts/2019-03-03-welcome-to-my-blog.markdown
+++ b/_posts/2019-03-03-welcome-to-my-blog.md
@@ -1,7 +1,7 @@
---
layout: post
title: "Welcome to my blog"
-date: 2019-03-03 10:50:11 -0300
+date: 2019-03-03
categories: jekyll update
---
On this blog, I'll be posting some personal projects that I'm working or some stuff that I find interesting to talk about, I hope be able to keep it interesting and produce something of value.
diff --git a/_posts/2019-03-07-ansible-part-1.md b/_posts/2019-03-07-ansible-part-1.md
new file mode 100644
index 0000000..7512865
--- /dev/null
+++ b/_posts/2019-03-07-ansible-part-1.md
@@ -0,0 +1,100 @@
+---
+layout: post
+title: "Automating desktop setup with ansible-pull part 1"
+date: 2019-03-07
+tags: ['ansible', 'ansible-pull', 'linux', 'fedora']
+---
+
+Every time that I do a clean install on my machine it takes a few hours
+till I get to point where I was before formatting it, install all
+packages, select themes, icons, fonts, install IDEs, extensions and so
+on. After doing it a few times I came to the conclusion (
+[genius](https://i.imgur.com/BtWuQgT.png)) that It would be nice to
+automate this chore. And as a result, I could tinker a little more with
+my system and not be afraid of spending a weekend reinstalling
+everything (which have happened more time that I'd like)
+
+So after a few attempts using python and bash, I couldn't get something
+that scales and ended with many files and keep the files organized and
+concise turned to be more tedious than the setup itself. So it comes
+[Ansible](https://www.ansible.com/). It is an enterprise-grade software
+used to automate tasks. It has many features I can be really helpful as
+a sysadmin but what we gonna focus here is cliente side of thing using
+[Ansible Pull](https://docs.ansible.com/ansible/latest/user_guide/playbooks_intro.html#ansible-pull)
+and
+[Playbooks](https://docs.ansible.com/ansible/latest/user_guide/playbooks.html)
+as better describe:
+
+> Ansible-Pull is used to up a remote copy of ansible on each managed
+> node, each set to run via cron and update playbook source via a source
+> repository. This inverts the default push architecture of ansible into
+> a pull architecture, which has near-limitless scaling potential.
+
+> Playbooks are Ansible’s configuration, deployment, and orchestration
+> language. They can describe a policy you want your remote systems to
+> enforce, or a set of steps in a general IT process.
+
+So what we're gonna do is pull a playbook from a git account a run on
+the host, that playbook will have the tasks that we need to setup our
+machine.
+
+To run it locally first we need localhost to all hosts list, to do so we
+only the following text to `/etc/ansible/hosts`:
+
+{% highlight text %}
+[all]
+localhost
+{% endhighlight %}
+
+As an experiment we're gonna make tasks to install vim. Currently, I
+using
+[Fedora](https://getfedora.org/) thus we going to use
+[dnf modeule](https://docs.ansible.com/ansible/latest/modules/dnf_module.html)
+to install packages
+
+The playbook to install is quite simple:
+
+{% highlight yml %}
+# main.yml
+- hosts: all tasks:
+ - name: install vim
+ dnf:
+ name: vim
+ state: latest
+{% endhighlight %}
+
+Fist `hosts:` it is required and it has to match our hosts so we are
+able to run that playbook. Then `tasks:` which is a list of task that
+the playbook will perform that in this case will be `dnf install` for
+the package vim.
+
+Ansible pull requires a repository but for the first example I want to
+keep it simple so we will use `ansible-playbook` commando to run
+`main.yml` direct from disk, do to so just run the following command:
+
+{% highlight bash %}
+sudo ansible-playbook --connection=local main.yml
+{% endhighlight %}
+
+After a few seconds, vim will be installed on your machine.
+{% highlight bash %}
+PLAY [all] *************************************************************
+
+TASK [Gathering Facts] *************************************************
+ok: [localhost]
+
+TASK [install vim] *****************************************************
+ok: [localhost]
+
+PLAY RECAP *************************************************************
+localhost : ok=2 changed=0 unreachable=0 failed=0
+{% endhighlight %}
+
+This is the first step, next part we shall create a more complex
+playbook and setup repo and actually use `ansible-pull`
+
+
+
+
+
+