Usar o juniper.device.system módulo Ansible para restaurar um dispositivo Junos ao seu estado padrão de fábrica
Use o módulo Ansible para restaurar um dispositivo que executa o juniper.device.system Junos OS ou um dispositivo que executa o Junos OS Evolved para suas definições de configuração padrão de fábrica.
A Juniper Networks oferece módulos Ansible que você pode usar para restaurar um dispositivo Junos para suas definições de configuração padrão de fábrica. A Tabela 1 descreve os módulos. Se você já estiver usando um determinado conjunto de módulos da juniper.device coleção, use o módulo para esse conjunto.
|
Coleção de Emoji |
Conjunto de módulos |
Nome do módulo |
|---|---|---|
|
|
||
|
|
juniper.device.junos_configzeroize(opção) |
Este tópico discute como usar o juniper.device.system módulo para redefinir um dispositivo Junos para seu estado padrão de fábrica. Para obter informações sobre como usar o juniper.device.junos_config módulo para redefinir um dispositivo, consulte Restaurar um dispositivo para as definições de configuração padrão de fábrica.
Como restaurar as definições de configuração padrão de fábrica
Para usar o juniper.device.system módulo para restaurar um dispositivo para suas definições de configuração padrão de fábrica, defina o argumento do action módulo como 'zeroize'. Depois de restaurar um dispositivo ao seu estado padrão de fábrica, você deve fazer login por meio do console como root para acessar o dispositivo.
O action: "zeroize" argumento faz com que o módulo execute o <request-system-zeroize> RPC no host de destino. Esse comando remove todas as informações de configuração nos mecanismos de roteamento especificados, redefine todos os valores de chave no dispositivo e, em seguida, reinicializa o dispositivo e o redefine para as definições de configuração padrão de fábrica. A operação zeroize remove todos os arquivos de dados, incluindo configuração personalizada e arquivos de log, desvinculando os arquivos de seus diretórios. Ele também remove todos os arquivos criados pelo usuário do sistema, incluindo todas as senhas de texto simples, segredos e chaves privadas para SSH, criptografia local, autenticação local, IPsec, RADIUS, TACACS+ e SNMP.
Para obter mais informações sobre os comandos operacionais correspondentes, consulte:
O manual do Ansible a seguir usa o juniper.device.system módulo com action: "zeroize". O módulo redefine todos os mecanismos de roteamento em cada host no grupo de inventário para as definições de configuração padrão de fábrica.
---
- name: Restore Junos devices to factory-default state
hosts: dc1
connection: local
gather_facts: no
tasks:
- name: Restore all Routing Engines to factory-default state
juniper.device.system:
action: "zeroize"
Por padrão, a action: "zeroize" operação redefine todos os mecanismos de roteamento em uma configuração de Mecanismo de Roteamento duplo para as configurações padrão de fábrica. O Junos OS Evolved sempre zera ambos os mecanismos de roteamento. No entanto, em dispositivos que executam o Junos OS, você também pode instruir o módulo a realizar a operação apenas no Mecanismo de Roteamento ao qual o aplicativo está conectado. Em um Virtual Chassis ou Virtual Chassis Fabric (VCF) composto por switches da Série EX (exceto EX8200 Virtual Chassis) ou switches da Série QFX, a operação é executada apenas no switch de membro conectado.
Para indicar explicitamente que a operação deve ser executada em todos os mecanismos de roteamento em uma configuração de Mecanismo de Roteamento duplo, inclua o all_re: True argumento, que é o padrão.
tasks:
- name: Restore all Routing Engines to factory-default state
juniper.device.system:
action: "zeroize"
all_re: True
Em dispositivos que executam o Junos OS, para realizar a ação solicitada apenas no Mecanismo de Roteamento ao qual o aplicativo está conectado, inclua o all_re: False argumento.
tasks:
- name: Restore connected Routing Engine to its factory-default state
juniper.device.system:
action: "zeroize"
all_re: False
Para instruir o módulo a também limpar toda a memória e mídia, além de remover todos os arquivos de configuração e log, inclua o media: True argumento. Incluir o media: True argumento é equivalente a executar o request system zeroize media comando de modo operacional. A media opção limpa todos os dispositivos de armazenamento conectados ao sistema, incluindo discos, dispositivos de memória flash, USBs removíveis e assim por diante. A duração do processo de depuração depende do tamanho da mídia que está sendo apagada.
tasks:
- name: Restore device to its factory-default state and scrub media
juniper.device.system:
action: "zeroize"
media: True
Exemplo: usar o Ansible para restaurar as definições de configuração padrão de fábrica
Este exemplo usa o juniper.device.system módulo para restaurar um dispositivo Junos para suas definições de configuração padrão de fábrica. Você pode executar o módulo usando qualquer tipo de conexão. No entanto, depois de redefinir o dispositivo, você só poderá acessá-lo novamente como root por meio de um servidor de console ou da porta CONSOLE . Este exemplo se conecta ao dispositivo por meio de um servidor de console.
Requerimentos
Este exemplo usa os seguintes componentes de hardware e software:
-
Servidor de gerenciamento de configuração executando o Ansible 2.17 ou posterior com a
juniper.devicecoleção instalada -
Dispositivo Junos que tem acesso à porta de console por meio de um servidor de console e tem uma conta de usuário configurada com as permissões apropriadas
-
Arquivo de inventário existente do Ansible com hosts necessários definidos
Visão geral
Este exemplo cria um playbook do Ansible que usa o juniper.device.system módulo para redefinir cada host no grupo de inventário para suas definições de configuração padrão de fábrica. O argumento do action módulo é definido como "zeroize", que executa o <request-system-zeroize> RPC em cada host. A operação remove todas as informações de configuração nos mecanismos de roteamento, redefine todos os valores de chave no dispositivo e, em seguida, reinicializa o dispositivo e o redefine para seu estado padrão de fábrica.
O request system zeroize comando remove todos os arquivos de dados, incluindo arquivos de configuração e log personalizados, desvinculando os arquivos de seus diretórios. O comando também remove todos os arquivos criados pelo usuário do sistema, incluindo todas as senhas de texto simples, segredos e chaves privadas para SSH, criptografia local, autenticação local, IPsec, RADIUS, TACACS+ e SNMP.
Ao chamar o módulo de um guia estratégico, recomendamos que você use um prompt interativo para confirmar que o usuário pretende redefinir os dispositivos. Se um usuário executar o manual involuntariamente e você não implementar uma verificação, ele poderá reverter os dispositivos e interromper todas as redes que exigem esses dispositivos. Como precaução, este guia estratégico usa um prompt interativo para verificar se o usuário pretende redefinir os dispositivos. O playbook requer que o usuário digite manualmente 'yes' na linha de comando para executar o módulo. Se a Confirmation check tarefa falhar, o nó de controle do Ansible ignorará as outras tarefas na reprodução para esse dispositivo.
O guia estratégico executa o juniper.device.system módulo desde que a verificação de confirmação tenha sido bem-sucedida. O módulo se conecta ao dispositivo Junos por meio do servidor de console na porta especificada, que é definida no arquivo de inventário do Ansible para cada host. O guia estratégico solicita a senha do dispositivo e a armazena em uma variável. Após a reinicialização, você deve fazer login através do console como root para acessar o dispositivo.
Configuração
Criar e executar o playbook do Ansible
Procedimento passo a passo
Para criar um playbook que usa o juniper.device.system módulo para restaurar um dispositivo Junos para suas definições de configuração padrão de fábrica:
-
Inclua o clichê do manual e desta jogada, que executa os módulos localmente.
--- - name: Restore Junos device to factory-default configuration settings hosts: dc1a_console connection: local gather_facts: no
-
Crie um prompt interativo para evitar a execução acidental do módulo.
vars_prompt: - name: reset_confirmation prompt: > This playbook resets hosts to factory-default configurations! Enter 'yes' to continue. default: "no" private: no -
Crie um prompt interativo para a senha do dispositivo, se você não passar as credenciais do usuário por outros meios.
- name: "device_password" prompt: "Device password" private: yes -
Defina os parâmetros de conexão.
vars: password: "{{ device_password }}" mode: "telnet" port: "{{ ansible_port }}" -
Crie a tarefa que confirma a intenção do usuário.
tasks: - name: Confirmation check fail: msg="Playbook run confirmation failed" when: reset_confirmation != "yes" -
Crie a tarefa para redefinir todos os mecanismos de roteamento no dispositivo para as definições de configuração padrão de fábrica.
- name: Restore all Routing Engines to factory-default configuration juniper.device.system: action: "zeroize" timeout: 120 register: result -
(Opcional) Crie uma tarefa para imprimir a resposta.
- name: Print response ansible.builtin.debug: var: result
Resultados
No nó de controle do Ansible, examine o manual concluído. Se o guia estratégico não exibir o código pretendido, repita as instruções neste exemplo para corrigir o manual.
---
- name: Restore Junos device to factory-default configuration settings
hosts: dc1a_console
connection: local
gather_facts: no
vars_prompt:
- name: reset_confirmation
prompt: >
This playbook resets hosts to factory-default configurations!
Enter 'yes' to continue.
default: "no"
private: no
- name: "device_password"
prompt: "Device password"
private: yes
vars:
password: "{{ device_password }}"
mode: "telnet"
port: "{{ ansible_port }}"
tasks:
- name: Confirmation check
fail: msg="Playbook run confirmation failed"
when: reset_confirmation != "yes"
- name: Restore all Routing Engines to factory-default configuration
juniper.device.system:
action: "zeroize"
timeout: 120
register: result
- name: Print response
ansible.builtin.debug:
var: result
Execute o manual
Para executar o manual:
-
Emita o
ansible-playbookcomando no nó de controle e forneça o caminho do guia estratégico e todas as opções necessárias.root@ansible-cn:~/ansible# ansible-playbook ansible-pb-junos-zeroize.yaml This playbook resets hosts to factory-default configurations! Enter 'yes' to continue. [no]: yes Device password: PLAY [Restore Junos device to factory-default configuration settings] TASK [Confirmation check] ********************************************** skipping: [dc1a-console.example.net] TASK [Restore all Routing Engines to factory-default configuration] **** changed: [dc1a-console.example.net] TASK [Print response] ************************************************** ok: [dc1a-console.example.net] => { "result": { "action": "zeroize", "all_re": true, "changed": true, "failed": false, "media": false, "msg": "zeroize successfully initiated.", "other_re": false, "reboot": false "vmhost": false } } PLAY RECAP ************************************************************ dc1a-console.example.net : ok=2 changed=1 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0
Verificação
Verificar a execução do playbook
Finalidade
Verifique se o playbook redefiniu com sucesso os dispositivos Junos para a configuração padrão de fábrica.
Ação
Acesse o dispositivo através da porta do console como root. O dispositivo agora deve estar no estado amnésico.
Amnesiac <ttyd0> login:
Significado
O Amnesiac prompt é indicativo de um dispositivo que está inicializando a partir de uma configuração padrão de fábrica e que não tem um nome de host configurado.