/ansible

My ansible playbook collection that has been written for setting up a Debian 12 (bookworm) Linux machine

Primary LanguageShellGNU General Public License v3.0GPL-3.0

Contributors Forks Stargazers

Text changing depending on mode. Light: 'Ansible Logo Light Mode' Dark: 'Ansible Logo Dark Mode'

~ansible

This playbook installs most of the software I use on my Linux machine for software development. This is a work-in-progress, and things will probably change as the sands of time flow.

Built With

Ansible

Getting Started

To get a local copy of the project up and running on your machine, follow these simple steps:

Installation

It is best to run this playbook remotely, as it is designed to be executed on a fresh install of Linux. To do so, run the following commands:

  1. Add your user to the sudoers group
    # execute the following commands from root
    apt install -y sudo curl
    sudo usermod -aG sudo <username>
  2. Execute the ansible-install script
    bash < <(curl -s https://raw.githubusercontent.com/Kaweees/ansible/main/ansible-install)
  3. Start and enable NetworkManager
    sudo systemctl start NetworkManager #.service
    sudo systemctl enable NetworkManager #.service

Enter your machine's password when prompted by Ansible.

Usage

Running

Testing

Testing this playbook locally can be done by following the steps below:

  1. Clone the repository
     git clone https://github.com/Kaweees/ansible.git
     cd ansible
  2. Install Ansible via pip
    pip install ansible
  3. Install Molecule with Docker support via pip
    pip install molecule[docker]
  4. Initialize a Molecule scenario locally with Docker as the driver
    molecule init scenario -r local -d docker
  5. Run the Molecule tests with the initialized scenario
    molecule test

Roadmap

See the [open issues](

Project Structure

. ansible/
├── .ssh/                     - ssh configuration files
├── auth_codes/               - auth codes for various services
├── meta/                     - metadata regarding this project for Ansible Galaxy
├── molecule/                 - molecule tests
│   └── default/              - default molecule scenario
│       ├── converge.yml      - main ansible playbook
│       ├── molecule.yml      - molecule configuration
│       └── verify.yml        - molecule verification
├── tasks/                    - various ansible tasks
├── vars/                     - various ansible variables
├── .ansible-lint             - ansible-lint configuration
├── .editorconfig             - editorconfig configuration
├── .yamllint                 - yamllint configuration
├── Dockerfile                - dockerfile for molecule tests
├── README.md                 - you are here
├── ansible-install           - entry point that install ansible and runs the playbook
├── local.yml                 - ansible playbook to run locally
└── nvim.Dockerfile           - dockerfile for neovim

License

My ansible scripts are distributed under the terms of the GNU General Public License v3.0, as I firmly believe that collaborating on free and open-source software fosters innovations that mutually and equitably beneficial to both collaborators and users alike. See LICENSE for details and more information.