1
0
Fork 0
mirror of https://github.com/eoli3n/dotfiles synced 2024-05-13 19:16:03 +02:00
eoli3n-dotfiles/README.md
2019-12-01 16:29:03 +01:00

4.2 KiB

i3-gaps Acid Dark

Master Build Status
Dev Build Status

i3-gaps zsh pureprompt polybar

alt tag

Weechat

alt tag

Chrome Rofi Stylish

alt tag

Connman GTK Theme

alt tag

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

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