Configure o Tulip com o Ansible

Prev Next

O Ansible é uma ferramenta de TI de código aberto, baseada em linha de comando, para gerenciamento em massa de dispositivos de borda.

Saiba mais sobre o Ansible aqui.

A quem se destina este guia

  • Usuários com Permission total sobre dispositivos de borda
  • Usuários familiarizados com o Ansible
  • Usuários familiarizados com a configuração de dispositivos de borda

Como funciona

O Ansible é um software de gerenciamento de TI que permite copiar e colar configurações de dispositivos. Isso é feito usando um dispositivo de referência (golden device) como uma configuração base verificada, que servirá para configurar um dispositivo de destino.

Por exemplo, é possível configurar vários novos dispositivos de borda (os dispositivos de destino) de uma só vez, atribuindo-os a um grupo que aplica automaticamente as credenciais de um dispositivo de referência existente (o dispositivo padrão). É possível atualizar o dispositivo padrão com melhorias adicionais e distribuir essas atualizações.

Edge device bulk configuration workflow

Esse método oferece um gerenciamento de TI automatizado e escalável, além de reduzir possíveis erros de configuração manual.

Integração entre dispositivos de borda e o Ansible

Esses procedimentos descrevem como integrar os recursos de coleta do Tulip Edge aos seus fluxos de trabalho existentes do Ansible.

Instale a coleção Tulip Edge

  1. Execute o seguinte comando no seu terminal:ansible-galaxy collection install git+https://github.com/tulip/tulip-ansible-library.git#/collections/ansible_collections/tulip/edge
  2. Para instalar o repositório para dispositivos de borda, execute o seguinte comando:ansible-galaxy collection install tulip.edge

Configuração do inventário

Adicione o código a seguir ao seu inventário existente e preencha as variáveis.

  1. No código a seguir, nomeie o grupo de dispositivos e autentique sua instância com a URL da instância, seu e-mail e sua senha de e-mail.

[your_device_group:vars]tulip_factory_url=https://your-factory.tulip.cotulip_admin_email=admin@yourcompany.comtulip_admin_password_sha256=your_sha256_hash

  1. No código a seguir, forneça o nome da sua empresa.

tulip_client_name=NomeDaSuaEmpresa tulip_client_version=1.0.0 tulip_client_description=Gateway de Produção

Gere um hash de senha

Um hash de senha é uma medida de segurança que transforma uma senha em uma sequência de caracteres embaralhados de comprimento fixo, que não pode ser facilmente revertida ou decifrada. Essa etapa evita os riscos de segurança associados a senhas em texto simples no seu arquivo.

Para gerar hashes de senha seguros, digite o seguinte:

echo -n "sua_senha" | sha256sum | cut -d' ' -f1

Integração do playbook principal

Adicione os playbooks necessários aos seus fluxos de trabalho existentes com o código a seguir:


* import\_playbook: tulip.edge.register when: register\_devices | default(false) ```

### Teste de integração

Adicione um playbook de teste aos seus fluxos de trabalho com o código a seguir:

```- name: Testar a autenticação do Tulip Gateway hosts: test\_devices tasks: - name: Autenticar dispositivo de teste import\_playbook: collections/ansible\_collections/tulip/edge/playbooks/gateway\_tulip\_auth.yml

  • nome: Verificar se a autenticação funcionou import_playbook: collections/ansible_collections/tulip/edge/playbooks/gateway_device_info.yml- nome: Verificar conectividade import_playbook: collections/ansible_collections/tulip/edge/playbooks/gateway_check_internet.yml

Práticas recomendadas de integração

  1. Gerenciamento de variáveis

    • Use group_vars para configurações comuns
    • Use host\_vars para substituições específicas do dispositivo
    • Armazene dados confidenciais no Ansible Vault
  2. Tratamento de erros


* name: Tratar falha de autenticação debug: msg: "Falha na autenticação, verifique as credenciais" when: auth\_result.failed | default(false) ```
* **Gerenciamento de backups**
* Use uma nomenclatura consistente para backups, como: `dispositivo-componente-carimbo de data/hora`
* Armazene os nomes dos backups em variáveis para reutilização
* Implemente políticas de retenção de backups
* **Mantenha a idempotência**. Todos os playbooks são idempotentes e, portanto, seguros para serem executados várias vezes.

Para identificar erros, compreender a execução da lógica ou validar antes da execução, você pode realizar uma execução de teste, que não executará o software propriamente dito. Para realizar uma execução de teste, use o modo --check, conforme mostrado no exemplo abaixo.

`ansible-playbook gateway_tulip_auth.yml --limit test_device --check`

## Provisionamento de dispositivo padrão

O fluxo de trabalho de provisionamento de dispositivo padrão permite que você: 1. **Selecione um dispositivo padrão**: escolha um dispositivo de referência devidamente configurado 2. **Faça backup da configuração padrão**: capture todas as configurações dos componentes 3. **Implante em novos dispositivos**: aplique as configurações do dispositivo padrão a dispositivos novos ou de substituição 4. **Autentique e verifique**: registre os dispositivos e valide a implantação

### Configuração do inventário

Configure seu inventário com o dispositivo padrão e os dispositivos de destino.

Digite o seguinte no seu terminal:

```[tulip\_edge\_devices]golden-device ansible\_host=172.16.15.130EIO-01-BCDEFA ansible\_host=172.16.15.140EIO-01-CDEFAB ansible\_host=172.16.15.141EIO-01-DEFABCansible\_host=172.16.15.150

[golden\_devices]EIO-01-ABCDEF

[newly\_provisioned]EIO-01-BCDEFAEIO-01-CDEFABEIO-01-DEFABC

[tulip\_edge\_devices:vars]

# Autenticação de fábrica

tulip\_factory\_url=https://your-factory.tulip.cotulip\_admin\_email=admin@yourcompany.comtulip\_admin\_password\_sha256=your\_sha256\_hash

# Informações do cliente

tulip\_client\_name=NomeDaSuaEmpresa tulip\_client\_version=1.0.0 tulip\_client\_description=Gateway de Produção```

### Gerar hash de senha

Um hash de senha é uma medida de segurança que transforma uma senha em uma sequência de caracteres embaralhados de comprimento fixo, que não pode ser facilmente revertida ou decifrada. Essa etapa evita os riscos de segurança associados a senhas em texto simples em seu arquivo.

Para criar um [hash SHA256](https://www.movable-type.co.uk/scripts/sha256.html) para armazenamento seguro de senhas, digite o seguinte:

`echo -n "sua_senha" | sha256sum | cut -d' ' -f1`

### Provisionamento básico do dispositivo de referência

Digite o código a seguir para cada etapa.

1. Faça login no seu`dispositivo` de referência:`ansible-playbook tulip.edge.login --limit golden-device`
2. Faça backup das`configurações` do dispositivo padrão:`ansible-playbook tulip.edge.backup_mqtt_broker --limit golden-device ansible-playbook tulip.edge.backup_mqtt_bridge --limit golden-device ansible-playbook tulip.edge.backup_drivers --limit golden-device ansible-playbook tulip.edge.backup_root_certs --limit golden-device`
3. Faça login nos dispositivos de destino: ``ansible-playbook tulip.edge.login --limit newly_provisioned``
4. Implemente as configurações padrão nos dispositivos de destino```ansible-playbook tulip.edge.restore\_mqtt\_broker \ --limit newly\_provisioned \ -e mqtt\_broker\_backup\_name="golden-device-mqtt-broker-20241219-143022"

ansible-playbook tulip.edge.restore\_mqtt\_bridge \ --limit newly\_provisioned \ -e mqtt\_bridge\_backup\_name="golden-device-mqtt-bridge-20241219-143025"

ansible-playbook tulip.edge.restore\_drivers \ --limit newly\_provisioned \ -e drivers\_backup\_name="golden-device-drivers-20241219-143028"

ansible-playbook tulip.edge.restore\_root\_certs \ --limit newly\_provisioned \ -e root\_certs\_backup\_name="golden-device-root-certs-20241219-143030"```

1. Autenticar com`a fábricaansible-playbook tulip.edge.gateway_tulip_auth --limit newly_provisioned`
2. Registrar em sistemas externos (opcional)`ansible-playbook tulip.edge.register --limit newly_provisioned`
3. Verifique`` a implantação: `ansible-playbook tulip.edge.gateway_device_info --limit newly_provisioned` `ansible-playbook tulip.edge.gateway_check_internet --limit newly_provisioned ```

### Práticas recomendadas para dispositivos padrão

A abordagem de dispositivo de referência a seguir garante um provisionamento consistente e confiável de sua frota de dispositivos Tulip Edge, mantendo total rastreabilidade e controle sobre seus padrões de configuração.

1. **Manutenção do dispositivo padrão**: mantenha seu dispositivo padrão atualizado e em boas condições
2. **Crie backups regulares**: crie backups regulares da configuração do seu dispositivo padrão
3. **Garanta o controle de versão**: armazene os backups do dispositivo padrão em um sistema de controle de versão com nomes significativos
4. **Tenha um pipeline de testes**: sempre teste as configurações do dispositivo padrão no ambiente de teste antes da produção
5. **Documente a configuração do dispositivo padrão**: documente seus padrões e procedimentos de configuração do dispositivo padrão
6. **Garanta o controle de acesso**: Limite o acesso aos dispositivos padrão e use credenciais separadas
7. **Monitore a integridade e os processos**: monitore a integridade dos dispositivos padrão e os processos de criação de backups

### Solução de problemas

Veja como solucionar problemas comuns em dispositivos padrão:

#### O dispositivo padrão está inacessível

Primeiro, teste sua conectividade com o dispositivo de referência. Execute:`ansible golden-device -m ping`

Verifique o status do dispositivo de referência. Execute:`ansible-playbook tulip.edge.gateway_device_info --limit golden-device`

#### A implantação de backup está falhando

Primeiro, verifique se o arquivo de backup existe. Execute:`ls backups/golden-device-mqtt-broker-*.json`

Use a nomenclatura de backup com`a extensão: ansible-playbook tulip.edge.restore_mqtt_broker \ --limit target-device \ -e mqtt_broker_backup_name="golden-device-mqtt-broker-20241219-143022" \ -vv`

#### Problemas de autenticação

Para reautenticar o dispositivo de referência, execute:`ansible-playbook tulip.edge.login --limit golden-device`

Para verificar as credenciais do dispositivo de referência em seu inventário, execute:`ansible-inventory --host golden-device`

{{snippet.Você encontrou o que estava procurando?}}