Git Product home page Git Product logo

jawesa's Introduction

JAWESA: Just Another Working Environment Setup with Ansible

Ansible Ubuntu

🖊️ Introdução

Esse projeto consiste de um Playbook Ansible parametrizável para instalação de aplicações e ferramentas

📝 Escopo

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)

⚓ Pré-Requisitos

sudo apt-get install ansible-core

💻 Execução

  • 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

⚙️ Configuração

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 🤷)

❗ Ponto de Atençã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.

🔮 Futuro

  • 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

jawesa's People

Contributors

mrcrch avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.