Esse projeto consiste de um Playbook Ansible parametrizável para instalação de aplicações e ferramentas
Por padrão, nenhuma ação é realizada. Para cada ação é necessário a sua configuração prévia
- APT
- Instalar Pacotes
- Remover Pacotes
- Atualizar Pacotes
- Snap
- Instalar Pacotes (Clássicos ou Não)
- Remover Pacotes
- Ferramentas de Desenvolvimento
- RVM (Instalação)
- NVM (Instalação)
- Docker (Instalação)
Lazygit (Instalação)AWS CLI (Instalação)Terraform (Instalação)tfenv (Instalação)
- Outros
- Google Chrome (Instalação)
sudo apt-get install ansible-core
-
Faça download do código desse repositório
-
Instale as collections utilizadas como dependências:
ansible-galaxy collection install -r requirements.yml
- Execute o Playbook
ansible-playbook -i "localhost," playbook.yml --ask-become
No início da execução, será solicitado o BECOME password
e deve ser informado a senha de root
.
Esse passo é necessário para que não seja executado todo o processo com um usuário privilegiado
Os arquivos de configuração estão localizados na pasta vars
.
- O arquivo
default.yml
contém a configuração padrão e não deve ser alterado. - Os arquivos
sample-*.yml
são fornecidos como exemplo e não são carregados - Qualquer configuração deve ser armazenada no arquivo
custom.yml
Chave | Descrição | Tipo | Default |
---|---|---|---|
rvm_install | RVM deve ser instalado? | Boolean | false |
nvm_install | NVM deve ser instalado? | Boolean | false |
docker_install | Docker deve ser instalado? | Boolean | false |
google_chrome_install | Google Chrome deve ser instalado? | Boolean | false |
apt_manage | Operações (update/autoremove/autoclean) APT devem ser gerenciadas? | Boolean | false |
apt_install_packages | Pacotes a serem instalados via APT | Array | [] |
apt_remove_packages | Pacotes a serem removidos via APT | Array | [] |
snap_install_packages | Pacotes a serem instalados via Snap | Array | [] |
snap_install_classic_packages | Pacotes a serem instalados via Snap, com a flag --classic |
Array | [] |
snap_remove_packages | Pacotes a serem removidos via Snap | Array | [] |
💡 Uma maneira simples de encarar as configurações relacionadas a instalação e remoção de pacotes é: garanta que esse pacote esteja instalado (ou não 🤷)
O objetivo do projeto é realizar (ou não) a instalação das aplicações e ferramentas solicitadas de acordo com a configuração daquele ciclo de execução.
Por exemplo, a indicação de que o RVM não será instalado (rvm_install: false
) sinaliza que o RVM não será instalado naquela execução e não que ele será removido caso tenha sido instalado anteriormente.
De forma semelhante, a remoção de um item de uma lista de instalação de pacotes não faz com que ele seja removido, para isso ele deve ser incluído na lista de pacotes a serem desinstalados.
-
Definir Licença
-
Instalação das Aplicações
- Lazygit
- AWS CLI
- Terraform
- tfenv
-
Desinstalação/Atualização das Aplicações
- NVM
- RVM
- Docker
- Google Chrome
-
Variáveis de Controle
- openssl
-
Acompanhamento de Fluxo de Atualização
-
Testes automáticos
-
Possibilidade de adição de repositórios e chaves de maneira genérica (lazygit, por exemplo)
-
Translation