Skip to content

junjuew/ansible-dotfiles

Repository files navigation

Automated Configuration, Preferences and Software Installation for Linux using Ansible Scripts

These ansible scripts gear up your vanilla Linux (with a focus on Ubuntu) with helpful and better defaults and packages to make you smile. In ancient times, such automated configurations are often implemented with Dotfiles. But why use easily breakable and hard to read shell scripts when we have mature IT automation tools like Ansible?

Installation

git clone --recurse-submodules -j8 https://github.com/junjuew/ansible-dotfiles.git

How to Use

Linux Servers

  1. Modify hosts to be machine hostname or ip.

  2. Modify group_vars/desktops to configure whether you want to install emacs gui, fish, and what fish auto completions scripts to install

  3. Run:

     ./run.sh
    

MacOS Dev Machine

  1. Modify hosts to be machine hostname or ip. See host-example
  2. Run:
ansible-playbook -u <user-name> -i hosts macos-setup-playbook.yml

What's in this Repo?

  • hosts: inventory file specifying hostnames or IPs and connection configurations of remote machines.
  • group_vars: default variables for groups of machines.
  • requirements.yml: role requirements from Ansible Galaxy.
  • roles: tasks that would be performed for different hosts, organized by roles.
  • hosts-*: host group files with machine access info. Hosts are the target of playbook. There is one such hosts file for each playbook to demonstrate available roles to apply with the playbook.
  • *-playbook.yml: playbooks to set up machines, including