From 0e147a780e74b54afbd56ff7438077d855d5c1c2 Mon Sep 17 00:00:00 2001
From: "Gabriel A. Giovanini"
- 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.
- 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 focuson
-
- Ansible Pull
-
- and
-
- Playbooks
- . 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)
-
-
- 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:
-
[all]
-localhost
-
- - As an experiment we're going to write a asks to install vim. Currently, I'm - using Fedora thus we going to use dnf modeule to install packages, but if - you're using another distribution look for a equivalent module like apt - module for Ubuntu. - - The playbook to install is quite simple: - -
# main.yaml
-- hosts: all
- tasks:
- - name: install vim
- dnf:
- name: vim
- state: latest
- - 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: -
sudo ansible-playbook --connection=local main.yml
-
- - After a few seconds, vim will be installed on your machine. -
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. -
- -- cgit v1.2.3