diff options
Diffstat (limited to 'content/posts/2019-03-07Automating_desktop_setup_with_ansible-pull_part-1.html')
| -rw-r--r-- | content/posts/2019-03-07Automating_desktop_setup_with_ansible-pull_part-1.html | 94 | 
1 files changed, 0 insertions, 94 deletions
| diff --git a/content/posts/2019-03-07Automating_desktop_setup_with_ansible-pull_part-1.html b/content/posts/2019-03-07Automating_desktop_setup_with_ansible-pull_part-1.html deleted file mode 100644 index d06a648..0000000 --- a/content/posts/2019-03-07Automating_desktop_setup_with_ansible-pull_part-1.html +++ /dev/null @@ -1,94 +0,0 @@ -<section> -  <p> -    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). -  </p> -  <p> -    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 <a href="https://www.ansible.com/">Ansible</a>. -    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 -    <a href="https://docs.ansible.com/ansible/latest/user_guide/playbooks_intro.html#ansible-pull"> -      Ansible Pull -    </a> -    and -    <a href="https://docs.ansible.com/ansible/latest/user_guide/playbooks.html"> -      Playbooks -    </a>. As better described: -    <blockquote> -      [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. -      (<a href="https://docs.ansible.com/ansible/latest/cli/ansible-pull.html">source</a>) -    </blockquote> -  </p> -  <p> -    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. -    <br/> -    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: -<pre><code>[all] -localhost</code></pre> -  </p> -  <p> -    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: - -<pre><code># main.yaml -- hosts: all -  tasks: -     - name: install vim -       dnf: -         name: vim -         state: latest</code></pre> -    <dl> -        <dt>host</dt> -        <dd>it is required and it has to match our hosts otherwise the playbook won't run.</dd> -        <dt>taks</dt> -        <dd> -          it is the list of tasks that the playbook will perform, in this case -          will be dnf install vim. -        </dd> -    </dl> -  </p> -  <p> -    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: -<pre><code>sudo ansible-playbook --connection=local main.yml</code></pre> -  </p> -  <p> -    After a few seconds, vim will be installed on your machine. -<pre><code>PLAY [all] ************************************************************* - -TASK [Gathering Facts] ************************************************* -ok: [localhost] - -TASK [install vim] ***************************************************** -ok: [localhost] - -PLAY RECAP ************************************************************* -localhost                  : ok=2    changed=0    unreachable=0    failed=0</code></pre> -  </p> -  <p> -    This is the first step, next part we shall create a more complex playbook and -    setup repository to run it remotely using ansible-pull. -  </p> -</section> | 
