1
0
mirror of https://github.com/eoli3n/dotfiles synced 2024-11-26 06:08:35 +01:00
Sway acid dark
Go to file
2020-01-07 14:27:43 +01:00
docker use make pkg instead of aur helper 2019-06-15 13:48:08 +02:00
library@5acabdc819 change from packer to trizen aur helper 2019-06-15 13:38:38 +02:00
roles fix fish shell env var 2020-01-07 14:27:43 +01:00
screenshots change screenshot 2017-12-22 21:46:47 +01:00
toolbox toolbox buster upgrade role 2019-12-02 14:31:23 +01:00
vagrant switch from powerline to airline, from localhost to multiple hosts 2018-01-04 20:59:34 +01:00
.gitignore fix git ignore 2019-12-01 16:43:50 +01:00
.gitmodules change from packer to trizen aur helper 2019-06-15 13:38:38 +02:00
.travis.yml no git clone in dockerfile 2017-12-27 13:16:29 +01:00
ansible.cfg ignore errors on install packages 2019-12-01 17:35:51 +01:00
hosts.template added host template 2019-12-11 15:11:44 +01:00
install.yml changed userbin place 2020-01-05 11:14:21 +01:00
README.md fix fish install 2020-01-04 21:32:08 +01:00
TODO updated todo 2020-01-06 22:34:06 +01:00

i3-gaps Acid Dark

Build Status

i3-gaps zsh pureprompt polybar

alt tag

Weechat

alt tag

Chrome Rofi Stylish

alt tag

Connman GTK Theme

alt tag

Why dotfiles with Ansible ?

  • Config files derivation by host or by OS with jinja2 templating
  • It manage packages too
  • Secrets with Ansible-vault
  • Multiple hosts and ability to update a config on all hosts from a single command

Test VMs|Containers

Please check vagrant/*/README.md and docker/*/README.md

Docs

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.7

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.7

Role list

  • packages-common
  • fish
  • neovim
  • terminfo
  • screen
  • authorized_keys

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 personal 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° Deploy SSH keys on nodes

Node per node if password differ between users. It adds 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 <tag>

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]
ansible-playbook install.yml -l localhost -K

Previously

IRC

eoli3n @ freenode #archlinux-fr