Manjaro Workstation Playbook
Table of Contents
- About the Playbook
- Getting Started
About The Playbook
This is the result of my frustrations with the BASH scripts I was using to provision my workstation since moving to ZSH as my primary shell and seeing a well structured Arch based configuration that demonstrated several features of **Ansible** I was unaware of when using it for provisioning VM servers prior. The Spark Playbook does an excellent job demonstrating all of the key features of Ansible that were holding back my internal deployment thereof prior and without yodeling its specific jargon in an abstracted way that I personally find rather hard to learn while attempting to comprehend the underlying technology.
This project leverages the power of Ansible to take the place of the several scripts that I had been using prior to reprovision my workstation after my experiments with Linux lead to their inevitable outcome, breaking the install.
Ansible is an application of YAML markup to automate redundant aspects of system provisioning that can scale out to entire networks of servers requiring identical, or similar, post-installation states. This technology is developed by Red Hat, who offer extensive (albeit jargon intensive) documentation and "getting started" videos on the topic for those seeking more information.
The biggest selling point for me about using Ansible in this project was the modular nature of the project which I based this effort on, having a similar modular structure that I have taken to in creating websites with React (or PHP) and styling them with SCSS.
Having each task as its own directory that contains directories and files related to that task make the code reusable in other applications which prevents redundant efforts and allows for a better debugging experience in general.
To use this playbook, it is advised that you begin with a freshly installed Manjaro system, which is what it is tested against using both AwesomeWM or i3 (depending on my mood when installing). At minimum, an operating system that has pacman as its package manager is needed to take advantage of this playbook and due to the idempotent (aka can install on top of existing systems) nature of Ansible it should not destroy your OS.
# install the dependencies $ sudo pacman -S python-passlib ansible # download this repo git clone https://github.com/Thomashighbaugh/
# run the playbook from the directory ## Use sudo instead of running as su for single deployment of yay sudo ansible-playbook -i localhost playbook.yml
This project can be used to provision your own system or as the basis for your own custom playbook to provision a system to your specific use case.
In addition, the tasks are modularized in such a way that individual tasks can easily be used as pieces of another playbook without more than adding them to the playbook.yml file you create.
Due to AUR helpers not allowing themselves to be run as root, I have included a temporary solution until I have a crack at the AUR helper roles available or write a role for this purpose. My solution uses AURA, another AUR helper that allows itself to run as root.
Where AUR packages are needed, I call AURA as a shell command, which isn't the most elegant solution but until I have time to sort out the nightmare of AUR helpers and Ansible, it works.
If you want to reccomend any features or tasks of this playbook, or spot some glaring flaw in it, feel free to open an issue and I will address it directly.
Distributed under the MIT License. Feel free to use it at your own risk and for whatever purposes you see fit in accordance with the terms of that license.