My personal environment configuration.
Any time that I need to install a Python based command globally I
prefer to do so with each command in it's own virtual environment.
This keeps the dependencies for each package isolated from any other
and reducing the likelihood of one package breaking another. To
accomplish this, I use pipx
.
sudo apt update
sudo apt install python3 python3-pip python3-venv
export PATH="~/.local/bin:$PATH"
python3 -m pip install --user pipx
Or on a recent version of Manjaro.
export PATH="~/.local/bin:$PATH"
python3 -m pip install --user pipx
git clone https://github.com/kewlfft/ansible-aur.git ~/.ansible/plugins/modules/aur
With pipx
installed, I use that to install Ansible.
pipx install ansible --include-deps
If you're on Arch/Manjaro you'll also need some additional plugins for Ansible which can be by running the following:
ansible-galaxy collection install --requirements-file ./ansible/manjaro_requirements.yml
Once Ansible is setup you can run any of the playbooks by using the following command (assuming you're in the dotfiles directory).
ansible-playbook \
--ask-become-pass \
--inventory ansible/hosts \
ansible/playbooks/<playbook>
--ask-become-pass
prompts you for your password to switch to root
when needed.
--inventory ansible/hosts
tells Ansible which hosts to run the
playbooks on and how to connect to them. In this case it's saying to
only connect to localhost
and that you don't need to use ssh
to
do it.
Because of the way the oh-my-zsh installer works, it expects Zsh to be the current shell. This won't be the case yet when installing it so you might need to run the Zsh playbook twice with the first time failing.