1
0
mirror of https://github.com/eoli3n/dotfiles synced 2024-11-23 07:21:58 +01:00
eoli3n-dotfiles/README.md

130 lines
3.5 KiB
Markdown
Raw Normal View History

# Sway Acid Dark
2016-03-29 20:44:38 +02:00
2019-12-01 16:35:24 +01:00
[![Build Status](https://travis-ci.org/eoli3n/dotfiles.svg?branch=master)](https://travis-ci.org/eoli3n/dotfiles)
2017-12-26 01:15:08 +01:00
2020-05-11 16:52:19 +02:00
**Sway fish pure waybar neovim**
2017-12-22 13:25:54 +01:00
2020-05-11 16:52:19 +02:00
![alt tag](https://github.com/eoli3n/dotfiles/blob/master/screenshots/sway.png)
2017-12-22 13:25:54 +01:00
2020-05-11 16:52:19 +02:00
**Tiny irc client**
2017-12-22 13:25:54 +01:00
2020-05-11 16:52:19 +02:00
![alt tag](https://github.com/eoli3n/dotfiles/blob/master/screenshots/irc.png)
2017-12-22 13:25:54 +01:00
2020-05-11 16:52:19 +02:00
**Firefox/Tabliss Wofi**
2016-09-17 18:35:54 +02:00
2020-05-11 16:52:19 +02:00
![alt tag](https://github.com/eoli3n/dotfiles/blob/master/screenshots/ff.png)
2017-12-22 13:25:54 +01:00
2020-05-11 16:52:19 +02:00
**Connman/Thunar GTK Theme**
2017-12-22 13:25:54 +01:00
2020-05-11 16:52:19 +02:00
![alt tag](https://github.com/eoli3n/dotfiles/blob/master/screenshots/gtk.png)
2017-12-23 22:44:23 +01:00
2020-05-12 12:46:46 +02:00
### Why dotfiles with Ansible ?
2017-12-29 02:55:10 +01:00
2020-05-12 12:36:50 +02:00
- Modularity: Roles as modules
- Factorization: Configuration files templated with jinja2 which use includes
- Simplicity: It only requires SSH on distant hosts, and can work locally too, ansible is available via pip.
- Flexibility: Push your dotfiles from/to any hosts you manage
- Toolbox: Dry-run mode, diff mode, files/vars encryption with Ansible-vault, tags...
2016-12-27 20:05:23 +01:00
2020-05-12 12:46:46 +02:00
### Test VMs|Containers
2019-12-01 16:29:03 +01:00
Please check ``vagrant/*/README.md`` and ``docker/*/README.md``
2020-05-12 12:46:46 +02:00
### Docs
2019-12-01 16:39:30 +01:00
Please look at ``roles/*/README.md`` if exists for specific hosts configuration.
2020-05-12 12:46:46 +02:00
### How to
2017-12-29 03:00:53 +01:00
2020-05-12 12:46:46 +02:00
** Use carefully** backup your home before using !
You can use ``--check`` to dry-run and ``--diff`` to see what could change.
2019-12-01 16:29:03 +01:00
#### 1. Fork Me!
2019-12-01 16:29:03 +01:00
#### 2. Clone your repo on a personal host
2017-12-29 02:55:10 +01:00
```
2019-12-01 16:29:03 +01:00
git clone --recursive https://github.com/[your_repo]/dotfiles
2017-12-29 02:55:10 +01:00
cd dotfiles
```
#### 3. Generate ssh keys
2019-12-01 16:29:03 +01:00
```
ssh-keygen -t rsa
```
#### 4. Replace your ssh key in ``authorized_keys`` role
2019-12-01 16:39:30 +01:00
!!! Use as is, you will add my SSH key in your authorized_keys !!!
2019-12-01 16:29:03 +01:00
```
cp ~/.ssh/id_rsa.pub dotfiles/roles/authorized_keys/id_rsa.pub
```
#### 5. Generate hosts file with your managed hosts
2019-12-01 16:29:03 +01:00
``hosts`` file is defaultly gitignored.
```
cd dotfiles
2020-05-12 12:46:46 +02:00
cp hosts.template hosts
2019-12-01 16:29:03 +01:00
```
Add your hosts in right sections
- server : install only cli tools
- desktop : install graphic environment
2019-12-01 16:39:30 +01:00
- laptop : install desktop + some extra packages
2017-12-29 02:55:10 +01:00
2019-12-01 16:29:03 +01:00
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
```
#### 6. Deploy SSH keys on nodes
2019-12-01 16:39:30 +01:00
Node per node if password differ between users.
2020-05-12 12:46:46 +02:00
It adds your public ssh keys on hosts.
2019-12-01 16:29:03 +01:00
```
2020-05-12 12:46:46 +02:00
ansible-playbook install.yml -t init_ssh -l host1 --ask-pass
ansible-playbook install.yml -t init_ssh -l host2 --ask-pass
ansible-playbook install.yml -t init_ssh -l host3 --ask-pass
2019-12-01 16:29:03 +01:00
```
#### 7. Run ansible-playbook
2019-12-01 16:29:03 +01:00
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.
2020-05-12 12:46:46 +02:00
You need to use ``-K|--ask-become-pass`` to ask sudo password, and -l <host> to limit to that host
2019-12-01 16:29:03 +01:00
```
2020-05-12 12:46:46 +02:00
ansible-playbook install.yml -l host1 --ask-become-pass --ask-vault-pass
2019-12-01 16:29:03 +01:00
```
2019-12-01 16:35:24 +01:00
#### Extra commands
2019-12-01 16:29:03 +01:00
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
```
2019-12-01 16:35:24 +01:00
#### Local run
2019-12-01 16:29:03 +01:00
Add localhost line and user in right hosts file section
```
[server]
[laptop]
localhost ansible_connection=local ansible_user=user
[desktop]
```
2019-12-01 16:32:57 +01:00
```
2020-04-23 19:51:00 +02:00
ansible-playbook install.yml -l localhost -K --ask-vault-pass
2019-12-01 16:29:03 +01:00
```
2020-05-12 12:46:46 +02:00
### Previously
2017-01-15 12:55:50 +01:00
* [i3-gaps Dark Solarized](https://github.com/eoli3n/dotfiles/tree/zsh-agnoster-solarized)
2020-05-11 16:59:50 +02:00
* [i3-gaps Acid Dark](https://github.com/eoli3n/dotfiles/tree/i3-gaps-acid-dark)