Coleção de roles para configurar servidores debian para o ambiente produtivo da CMC.
Este é um trabalho em curso.
- Ansible 2.10.3 ou maior
- Python 3.8.5 ou maior
- Opcional: crie um virtual env python e ative-o para instalar o Ansible.
-
Instalar o Ansible na máquina controladora. Sugestão, de acordo com esta documentação:
sudo apt install python-is-python3 python3-pip sudo pip3 install ansible
Para atualizar o Ansible:
sudo pip3 install --upgrade ansible
-
Garanta o acesso do controlador ao host (por exemplo, compartilhando chaves entre o controlador e os hosts)
-
Instalar a collection cmcuritiba.iac. As alternativas de instalação são:
-
Faça o download do projeto como
.zip
e descompacte em./collections/ansible_collections/
ou~/.ansible/collections/ansible_collections/
-
Clone o projeto localmente em
./collections/ansible_collections/
ou~/.ansible/collections/ansible_collections/
-
Utilizando o galaxy para baixar o código do repositório através de um
requirements.yml
:--- collections: - name: https://github.com/CMCuritiba/ansible-cmc-servers.git type: git version: main
Instale com:
ansible-galaxy install -r requirements.yml
-
-
Verifique se o(s) host(s) estão no ar:
ansible -m ping -u root dhcp ansible -m ping all
-
Testando um playbook (dry run):
ansible-playbook -u root playbook.yml --check --diff ansible-playbook -u root playbook.yml --check
-
Aplicando um playbook:
ansible-playbook -K playbook.yml ansible-playbook -u nome.sobrenome -K playbook.yml ansible-playbook -u root playbook.yml
-
Atualize playbooks existentes para funcionar com a coleção:
- Renomeie todas as referencias à role original nos playbooks para iniciar com cmcuritiba.iac;
- Remova todas as referencias a
cmc_server_hostname
.cmc_server_hostname
foi substituída com a variável especial do ansibleinventory_hostname_short
; - Revise as variáveis obrigatórias e opcionais, em especial para LDAP e SMTP.
-
Miscelânea
- Please submit a pull request on so we can merge your roles into the collection.
-
Instale o molecule:
python3 -m venv molecule-venv source molecule-venv/bin/activate (molecule-venv) $ pip install "molecule[ansible]" (molecule-venv) $ pip install "molecule[podman,lint]"
-
Para fazer o lint do código:
(molecule-venv) $ cd roles/aaa (molecule-venv) $ molecule lint
-
Teste o playbook nos containeres (configurados em
molecule/default/molecule.yml
):(molecule-venv) $ cd roles/aaa (molecule-venv) $ molecule test