Tl; dr | Recursos | Perfis personalizados | Teste seu perfil | Opções | Requisitos | Estabilidade | Outro os | Licença
![]()
![]()
Configuração Ansible bem testada e personalizável para provisionar sua estação de trabalho com o Debian.
Recupere o seu sistema sob controle. Gerencie pacotes não fornecidos por padrão e acompanhe os repositórios, bem como o software instalado. Qualquer pacote agrupado oferece a possibilidade de gerenciá -los completamente, ou seja, verifique se eles estão instalados ou removidos. É claro que você também pode simplesmente ignorá -los, caso você queira gerenciá -los você mesmo.
Ele foi projetado para ser um gerente de construção genérico (em oposição ao DotFiles ). Você pode adicionar quantos perfis quiser (por exemplo: para hardware diferente em diferentes notebooks) e também ter a opção de provisioná -lo local ou sobre a rede.
Verifique se o seu sistema atende aos requisitos antes de iniciar.
Use isso para provisionar seu sistema do zero, quando você já tiver enviado seu perfil a montante. Os únicos requisitos são bash e sudo , tudo será instalado automaticamente.
# Provision default profile
curl https://raw.githubusercontent.com/cytopia/ansible-debian/master/bootstrap | bash
# Provision profile 'generic-all'
curl https://raw.githubusercontent.com/cytopia/ansible-debian/master/bootstrap | bash -s generic-allUse isso para provisionar seu sistema a partir do zero, quando você ainda não tiver um perfil enviado ao Upstream.
# 1. Clone this project
git clone https://github.com/cytopia/ansible-debian
cd ansible-debian
# 2. Add your profile 'bob' (See 'Create custom profiles' section of this README)
# 3. Provision your system (with profile 'bob')
# Note when to use sudo and when not
sudo make deploy-init
make deploy-apt-sources PROFILE=bob
sudo make deploy-dist-upgrade
make deploy-tools PROFILE=bob # Dry-run everything for profile 'generic-all'
make diff-tools PROFILE=generic-all
# Dry-run everything for profile 'generic-all' without role 'systemd'
make diff-tools PROFILE=generic-all IGNORE=systemd
# Dry-run a specific role 'i3-gaps'
make diff-tools PROFILE=generic-all ROLE=i3-gapsEste repositório Ansible permite que você forneça suas máquinas Debian e mantendo-as atualizadas. Ele permite criar perfis diferentes para diferentes máquinas e oferece pacotes que não estão disponíveis por nenhum repositório do Debian.
Este é um provisionamento idempotente básico com padrões sensatos que podem ser ligeiramente ajustados. Só se significa como um bootstrap de compra . Para personalizar os próprios aplicativos, você ainda precisará aplicar seus arquivos pessoais em cima disso.
| Ferramenta | Descrição |
|---|---|
| autorunner | Configurável e notificação ciente do AutoStart Helper para gerentes de janelas minimalistas como I3, OpenBox e outros |
| cromo | Configura cromo, pacotes adicionais e extensões especificadas da Chrome Webstore |
| Clipmenu | Gerenciador de quadro com integração dmenu ou rofi |
| dBeaver | Cliente SQL universal |
| Diffllight | Ferramenta para saída de git diff impressionante |
| Docker | Docker repo e pacote e também garantir que o usuário seja adicionado ao docker Group |
| Docker-Compose | Downloads mais recentes binários docker-compose |
| ffscreencast | Wrapper FFMPEG para gravação de desktop com sobreposição de vídeo e suporte a multi monitor |
| Firefox | Firefox Quantum |
| fzf | Linha de comando Fuzzy Finder |
| gimp | Gimp com o tema do Photoshop e as Cindas de Key |
| i3 | I3WM |
| i3-gaps | I3WM em esteróides |
| i3-utils-bin | Ferramentas para i3wm |
| I3-Utils-Systemd | Arquivos Systemd para i3wm |
| I3Blocks-Modules | Módulos I3 I3Blocks |
| KOPS | Ferramenta de linha de comando de operações de Kubernetes |
| Kubectl | Ferramenta de linha de comando Kubernetes |
| LibreOffice | LibreOffice 6 com o tema do ícone MSOFFICE 2013 |
| LXDM | Gerente de login de Leight-Weight |
| neovim | vim em esteróides |
| gerente de rede | Gerente de rede LAN e Wi -Fi do Gnome com bandeja de sistema opcional |
| Oh-my-zsh | Uma deliciosa estrutura orientada à comunidade para gerenciar sua configuração ZSH. |
| Packer | Packer da Hashicorp para construir máquinas automatizadas |
| Pinta | Clone de tinta de código aberto / mspaint. |
| guarda-florestal | Gerenciador de arquivos de linha de comando com visualização de imagem embutida (também pode ser usada como gerenciador de arquivos Vim) |
| Skype | Repo e pacote do Skype |
| sublime | Repo sublime e pacote |
| sxiv | Visualizador de imagem pequeno, rápido e de baixa dependência com ligação ao VIM |
| Systemd | Gerenciar serviços Systemd habilitados, desativados e mascarados |
| telegrama | Repo e pacote de desktop do Telegram |
| Terraform | Infraestrutura da Hashicorp como provisionista de código |
| Thunar | Thunar e seus requisitos para lidar com discos externos, bem como discos criptografados |
| Ações Thunar-Custom | Ações personalizadas Thunar |
| Thunderbird | Thunderbird e complementos definidos globalmente |
| Timemachine | OSX como Timemachine para a linha de comando |
| urxvt | Pequeno, rápido e leight-woight 256 color Unicode Terminal Emulator |
| VirtualBox | VirtualBox Upstream Repositório e pacotes |
| Xbacklight | Substituição moderna de Cross-GPU Xbacklight |
| XDG-MIME-META | Define aplicativos padrão para XDG-Open |
| Xorg | Xorg e suas dependências, bem como configurações de GPU e touchpad |
| Zathura | Visualizador PDF pequeno, rápido e de baixa dependência com ligações Vim |
| Ferramenta | Descrição |
|---|---|
| Fonte-Droid-Sans-mono | Droidsansmono Nerdfont com muitos glifos e símbolos unicode |
| Fonte-font-impressionante | Fontawemome como uma fonte do sistema |
| Font-San-Francisco | Fonte Osx Yosemite São Francisco |
| Terminal de fontes | Terminus nerdfont com muitos glifos e símbolos unicode |
| Font-Ubuntu | Fonte oficial do Ubuntu |
| Icon-Moka | Temas do ícone Moka (para Thunar ou Nautilus) |
| tema-arco | Tema de arco para GTK2, GTK3, Chrome e outros |
Consulte Funções/ Diretório para todos os pacotes disponíveis. Se você estiver perdendo um, abra um problema ou uma solicitação de tração.
Além disso, você pode (mas não precisa) gerenciar o seguinte:
Para personalizar sua estação de trabalho ou infraestrutura do Debian, você pode criar perfis para cada uma de suas máquinas. Isso pode ser necessário devido a diferentes preferências de hardware ou software. Cada nome do host (real ou inventado) no arquivo de inventário representa automaticamente um perfil .
A propósito, o Ansible funciona, cada perfil herda todas as configurações de group_vars/all.yml. Este arquivo mantém um padrão SANE, mostrando todas as opções disponíveis e com todos os pacotes não gerenciados.
Para realmente personalizar seu perfil , você precisará criar um arquivo em host_vars/ com o mesmo nome que você especificou no inventário. Você pode copiar group_vars/all.yml diretamente ou usar um perfil já existente de host_vars , como host_vars/genic-all.yml.
Para entender melhor como funciona, você pode seguir este exemplo passo a passo para criar um novo perfil:
Para o bem deste exemplo, vamos supor que seu perfil seja chamado dell-xps-i3wm .
Adicione a seguinte linha à parte inferior do inventário:
dell-xps-i3wm ansible_connection=local ansible_connection=local define que seu perfil deve ser aplicado ao seu computador local. Se você deseja criar um perfil para um computador remoto, o nome do seu perfil deve ser um nome de host ou endereço IP pelo qual a máquina remota é acessível pela rede.
Como já mencionado anteriormente, você pode copiar group_vars/all.yml ou um arquivo host_vars já existente.
Use group_vars/all.yml como um modelo padrão:
cp group_vars/all.yml host_vars/dell-xps-i3wm.ymlUse um arquivo host_vars já existente como um modelo padrão:
cp host_vars/generic-all.yml host_vars/dell-xps-i3wm.yml Simplesmente edite host_vars/dell-xps-i3wm.yml e ajuste os valores às suas necessidades. Se você copiou um arquivo já existente, ele conterá comentários para todas as opções de configuração possíveis que permitem ver rapidamente o que e como alterar.
Se você deseja testar seu perfil em um contêiner do Docker antes de provisionar seu próprio sistema, pule para a próxima seção; caso contrário, basta executar os seguintes comandos.
Execute o seguinte comando para ver o que aconteceria:
ansible-playbook -i inventory playbook.yml --diff --limit dell-xps-i3wm --ask-become-pass --checkExecute o seguinte comando para realmente aplicar seu perfil:
ansible-playbook -i inventory playbook.yml --diff --limit dell-xps-i3wm --ask-become-passAntes de executar qualquer novo perfil em seu próprio sistema, você pode e você deve testá -lo com antecedência. Isso pode ser feito em um contêiner do Docker ou em uma caixa vagabunda para ver se tudo funciona conforme o esperado. Isso também pode ser muito útil, caso você esteja criando uma nova função e deseja ver se funciona.
Nota: A imagem do Docker sempre será construída automaticamente antes de executar os testes.
Antes de executar, você deve estar ciente de alguns argumentos que podem ser aplicados aos comandos make . Veja a tabela abaixo:
| Variável | Obrigatório | Descrição |
|---|---|---|
PROFILE | sim | O nome do host de inventário (seu perfil) |
VERBOSE | não | Verbosidade Ansible. Valores válidos: 0 , 1 , 2 ou 3 |
ROLE | não | Execute esta tag específica (nome do função) |
Execute um teste completo de perfil generic-all :
make test-docker-full PROFILE=generic-all Execute um teste completo de perfil generic-all em uma ordem aleatória:
make test-docker-random PROFILE=generic-all Run apenas o papel i3-gaps no perfil generic-all
make test-docker-single PROFILE=generic-all ROLE=i3-gapsSe você não confia nos testes no Docker e deseja ver os resultados finais graficamente em uma VM, também poderá usar o Vagrant para fazer o mesmo.
make test-vagrant PROFILE=generic-all Procure a seção do pacote e defina -os como um estado desejado. install ou remove ou qualquer outro valor para ignorá -los.
$ vi host_vars/ < name > .yml...
i3-gaps : ' install '
font_ubuntu : ' install '
diff_highlight : ' install '
docker : ' remove '
docker_compose : ' remove '
skype : ' ignore '
sublime : ' ignore '
...Muitos pacotes também vêm com opções que você pode ajustar. Você pode, por exemplo, definir a versão python que seu sistema deve fornecer:
$ vi host_vars/ < name > .yml...
python_2 : yes
python_3 : yes
...Outra personalização pode ser o programa padrão a ser usado ao abrir os tipos de arquivos Speficif:
$ vi host_vars/ < name > .yml...
xdg_mime_defaults :
- desktop_file : chromium.desktop
mime_types :
- text/html
- text/xml
- application/xhtml_xml
- application/x-mimearchive
- x-scheme-handler/http
- x-scheme-handler/https
... Ou para definir seu DPI e outras opções para lxdm
$ vi host_vars/ < name > .yml...
lxdm_dpi : 132
lxdm_gtk_theme : Arc-Darker
lxdm_show_user_list : no
...Escolha seu driver de GPU e Touchpad:
$ vi host_vars/ < name > .yml # Supported values: 'amdgpu' 'ati' 'intel' 'modesetting' 'nouveau' 'nvidia' 'radeon'
xorg_gpu : modesetting
# Enable VDPAU_DRIVER=va_gl systemwide
xorg_gpu_vdpau_va_gl_enable : yes
# 'libinput' or 'synaptics'
xorg_touchpad_enable : yes
xorg_touchpad_driver : ' synaptics '
...Antes de começar, são necessárias algumas ferramentas que devem estar presentes no sistema. Basta copiar esses comandos como root no seu terminal.
apt-get update
apt-get install --no-install-recommends --no-install-suggests -y
make
sudo
Certifique -se de que seu usuário tenha permissão para executar sudo
usermod -aG sudo <username>
Para garantir a estabilidade mais possível dessa configuração, foram definidos extensos cheques Travis-Ci que são executados automaticamente todas as noites. Esses testes são executados dentro de um recipiente do docker. Os seguintes casos de teste foram definidos:
Se você estiver executando um sistema operacional diferente e ainda deseja provisionar seu sistema com Ansible, dê uma olhada nos seguintes projetos semelhantes:
Sinta -se à vontade para contribuir e adicionar novos papéis conforme desejado. Ao fazer isso, dê uma olhada no contribuindo.md para obter as melhores práticas necessárias.
MIT Licença
Copyright (c) 2017 Citopia