Playbook e roles do Ansible para provisionamento do meu computador.
As roles são desenvolvidas e testadas no Xubuntu 18.04 (amd64), mas deverão funcionar em qualquer "flavor" e/ou versão recente do Ubuntu.
Atenção: leia as tasks e execute com cautela. Não posso me responsabilizar por eventuais problemas em seu sistema! ;)
- Ansible 2.8+
Antes, assegure que o Ansible esteja instalado :-)
No primeiro uso, instale as roles externas:
$ wget -nv https://github.com/flaudisio/ansible-workstation/archive/master.tar.gz -O - | tar -xzf -
$ cd ansible-workstation-master/
$ ./scripts/update-requirements.sh
Feito isso, execute o playbook:
$ ansible-playbook -b -K -c local -i inventory.ini playbooks/master.yml
Observe que:
- O comando provisiona a própria máquina (
-c local
) e assume que está sendo executado por um usuário com permissão desudo
(-b
e-K
), como em uma instalação típica do Ubuntu; - Tarefas como a instalação de "dotfiles" são executadas pelo usuário que executou
o Ansible. Por exemplo, o
.bashrc
será instalado em/home/usuario
em vez de/root
; - Nenhum pacote previamente instalado é atualizado (ou seja, APT sempre com
state: present
).
Dica: use o script run.sh
como "alias" do comando acima. Exemplos:
$ ./run.sh playbooks/master.yml --list-tasks
$ ./run.sh playbooks/master.yml --tags backup,spotify
$ ./run.sh playbooks/chat.yml
As (excelentes) roles externas abaixo são utilizadas:
Use o poder dos playbooks e tags! ;-)
Exemplos:
$ ansible-playbook -b -K -c local -i inventory.ini playbooks/master.yml --list-tasks
$ ansible-playbook -b -K -c local -i inventory.ini playbooks/master.yml -t pkg:misc,backup
$ ansible-playbook -b -K -c local -i inventory.ini playbooks/cloud-tools.yml
Exemplos (equivalentes, via script):
$ ./run.sh playbooks/master.yml --list-tasks
$ ./run.sh playbooks/master.yml -t pkg:misc,backup
$ ./run.sh playbooks/cloud-tools.yml
-
Software
- pip (sistema)
-
virtualenv
,virtualenvwrapper
(sistema) - ASDF
- Scripts (GitHub:
flaudisio/scripts
)
-
Dotfiles/configurações
- xfce4-terminal
- Synapse (
Alt+F1
) - Tearing (
/etc/X11/xorg.conf.d/20-intel.conf
) -
.aws/config
-
.ssh/config
- VPNs
-
Desktop
- Fix window button layout
- Window Manager keyboard shortcuts
- Desktop (wallpaper, icons)