# i3-gaps Acid Dark | | | |-----------|:-------------:| | Master | [![Build Status](https://travis-ci.org/eoli3n/dotfiles.svg?branch=master)](https://travis-ci.org/eoli3n/dotfiles) | | Dev | [![Build Status](https://travis-ci.org/eoli3n/dotfiles.svg?branch=dev)](https://travis-ci.org/eoli3n/dotfiles) | **i3-gaps zsh pureprompt polybar** ![alt tag](https://github.com/eoli3n/dotfiles/blob/master/screenshots/i3gaps.png) **Weechat** ![alt tag](https://github.com/eoli3n/dotfiles/blob/master/screenshots/weechat.png) **Chrome Rofi Stylish** ![alt tag](https://github.com/eoli3n/dotfiles/blob/master/screenshots/chrome-rofi.png) **Connman GTK Theme** ![alt tag](https://github.com/eoli3n/dotfiles/blob/master/screenshots/connman-gtk.png) ## Why using Ansible ? Ansible allows to duplicate this Desktop Environment over multiple hosts with specific configuration (dualscreen, packages...). All your nodes will have access to all configurations if - your git repo is accessible from every nodes - your current node ssh keys is authorized on all nodes You should be able to edit and push from/to any managed hosts. ## Test VMs|Containers Please check ``vagrant/*/README.md`` and ``docker/*/README.md`` ## How to ** Use carefully** backup your home before using ! Ansible will backup any existing conf file before overriding. # 1° Fork Me! # 2° Clone your repo on a personnal host ``` git clone --recursive https://github.com/[your_repo]/dotfiles cd dotfiles ``` # 3° Generate ssh keys ``` ssh-keygen -t rsa ``` # 4° Replace your ssh key in ``authorized_keys`` role **!!! Use as is, you will add my SSH key in your authorized_keys !!!** ``` cp ~/.ssh/id_rsa.pub dotfiles/roles/authorized_keys/id_rsa.pub ``` # 5° Generate hosts file with your managed hosts ``hosts`` file is defaultly gitignored. ``` cd dotfiles mv hosts.template hosts ``` Add your hosts in right sections - server : install only cli tools - desktop : install graphic environment - laptop: install desktop + some extra packages Please explicitly define an ``ansible_user`` which will receive configurations ``` [server] server1 ansible_user=root [laptop] host1 ansible_user=user [desktop] host2 ansible_user=user2 ``` Remove useless groups and hosts # 6° Copy your SSH keys on all nodes : node per node if password differ between users It add your public ssh keys on hosts ``` ansible-playbook install.yml -t init_ssh -l host1 -K ansible-playbook install.yml -t init_ssh -l host2 -K ansible-playbook install.yml -t init_ssh -l host3 -K ``` # 7° Run ansible-playbook For runs on hosts configured with root user You can use without providing extra passwords ``` ansible-playbook install.yml -l server ``` For hosts configured with non-root user User needs to be in sudoers. You need to use -K to ask sudo password, and -l to limit to that host ``` ansible-playbook install.yml -l host1 -K ``` # Extra commands To list tasks and tags ``` ansible-playbook install.yml --list-tasks ``` To limit to a tag ``` ansible-playbook install.yml -K -t ``` To dry-run and print files diff on all declared hosts ``` ansible-playbook install.yml -l host1 -CDK ``` # Local run Add localhost line and user in right hosts file section ``` [server] [laptop] localhost ansible_connection=local ansible_user=user [desktop] ``` # then ansible-playbook install.yml -l localhost -K ``` Please look at ``roles/*/README.md`` if exists for specific hosts configuration. ## Desktop/Laptop Environment Should not be used as ``root``. ### Supported OS - Archlinux ### Dependencies - ansible >= 2.4 ### Role list - packages-common - fish - neovim - terminfo - screen - authorized_keys - packages-desktop - gtk - i3-wm - picom - polybar - variety - rofi - neofetch - termite - weechat - ssh-agent - dpms - packages-laptop [only laptop tag] - xbindkeys [only laptop tag] ## Server Environment Only cli tools It could be run as ``root``. ### Supported OS - Archlinux - Debian - Centos - FreeBSD : need to ``sudo ln -s /usr/local/bin/python2 /usr/bin/python`` ### Dependencies - ansible >= 2.4 ### Role list - packages-common - fish - neovim - terminfo - screen - authorized_keys # Previously * [i3-gaps Dark Solarized](https://github.com/eoli3n/dotfiles/tree/zsh-agnoster-solarized) **IRC** eoli3n @ freenode #archlinux-fr