See part 1

Now we're going to setup ansible to work with a git repository. The process is quite similar to ansible-playbook, the only difference is that the source for the playbook will be a remote repository and not a local file. Following the previous example we'll get vim setup automated.

Create a git repository wherever you see fit, gitlab and github offer free repositories. For this task we need to add only two file: one for the yml file describing the tasks and the .vimrc file.

In the .vimrc add your own configuration, you can see mine over here , it is pretty simple as I don't use it but for simple text editing (like this post) so you can start with that if you don't have one.

The yml file will have two tasks, one is to install vim, just like we did in the part 1.

# main.yml
---
- name: install vim
  dnf:
    name: vim
    state: latest

To copy .vimrc file to your $HOME we going to use copy module:

After we've added those two files to repository you will have be something like this.
Parms:

Remember man is your best friend, take a look at man ansible-pull to know more about its parameters.

The best part you can quickly test and see the result by running my sample:

ansible-pull \
    -U https://gitlab.com/gabrielgio/homestation.git \
    -C debcf3458df511aef9f7dca0cb73f6cf6baddd5d \
    -i all \
    main.yml

The idea here is to keep your repository as a source of truth when comes to configuration, you can add ansible-pull to a CRON tab, so you just need to push something to your repository and after a few minutes not only your machine but all the machines that have it setup will run the playbooks. You can use this method as a simple way to install software, update machines or even distribute tooling company-wise.