diff options
Diffstat (limited to 'content/posts/2019-04-22Automating_desktop_setup_with_ansible-pull_part-1.md')
-rw-r--r-- | content/posts/2019-04-22Automating_desktop_setup_with_ansible-pull_part-1.md | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/content/posts/2019-04-22Automating_desktop_setup_with_ansible-pull_part-1.md b/content/posts/2019-04-22Automating_desktop_setup_with_ansible-pull_part-1.md deleted file mode 100644 index 58ecb0d..0000000 --- a/content/posts/2019-04-22Automating_desktop_setup_with_ansible-pull_part-1.md +++ /dev/null @@ -1,97 +0,0 @@ -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 that I would -save time by spending time automating this chore, and as a result, I -could tinker a little more with my system and not worry about spending a -weekend re-installing everything (which have happened more time that - I\'d like to remember). - -So after a few attempts using python and bash I ended with many files -and keep everything organized and concise turned out to be more tedious -than the setup itself. So there comes -[Ansible](https://www.ansible.com/). It is an enterprise-graded software -used to automate tasks. It has A LOT OF features and it can be really -helpful if you\'re a sysadmin but for now we\'re going to focus on -[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 described: - -> \[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. -> -> [source](https://docs.ansible.com/ansible/latest/cli/ansible-pull.html) - -The goal is to pull and run a playbook remotely using a git repository. -The playbook will describe the tasks needed to setup our machine from -scratch. - -But first lets tinker a bit a with playbooks locally with -`ansible-playbook`, to do so we need to add `localhost` to ansible\'s -hosts list. Add it to `/etc/ansible/hosts`: - -``` service -[all] -localhost -``` - -As an experiment we\'re going to write a asks to install vim. Currently, - I\'m 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, but if you\'re using another distribution look for - a equivalent module like [apt - module](https://docs.ansible.com/ansible/latest/modules/apt_module.html) - for [Ubuntu](https://ubuntu.com/). - - The playbook to install is quite simple: - - ``` yaml -# main.yaml - - hosts: all - tasks: - - name: install vim - dnf: -name: vim -state: latest -``` - -`hosts:` is required and it has to match our hosts otherwise the -playbook won\'t run. - -`tasks:` is the list of tasks that the playbook will perform, in this -case will be `dnf install vim`. - -To run a playbook use the command `ansible-playbook` commando to run -`main.yml` direct from disk, do to so just run the following command: - - -``` bash -sudo ansible-playbook --connection=local main.yml -``` - -After a few seconds, vim will be installed on your machine. - -``` bash -PLAY [all] ************************************************************* - -TASK [Gathering Facts] ************************************************* -ok: [localhost] - -TASK [install vim] ***************************************************** -ok: [localhost] - -PLAY RECAP ************************************************************* -localhost : ok=2 changed=0 unreachable=0 failed=0 -``` - -This is the first step, next part we shall create a more complex -playbook and setup repository to run it remotely using `ansible-pull`. |