ansible -como pegar o hostname e criar um certificado autoassinado

2

Eu tenho um comando de trabalho para criar um certificado autoassinado para o arquivo .kdb do servidor IHS e estava tentando usar o mesmo comando por meio do ansible. Aqui, meu objetivo é que ansible detecte o nome do host dos servidores de aplicativos e use esse nome para o "-dn" do comando. Abaixo está o comando de trabalho

[root @ myhost bin] # ./gskcmd -cert -create -db /opt/myapp/key.kdb -label IHS -expire 3650 -size 2048 -dn "CN = myserverFQDN" -default_cert sim -pw senha

mas abaixo está minha jogada e seu erro de sintaxe

tasks:
  - name: get hostname
    shell: echo $HOSTNAME
    register: hostname

  - name: create self signed certificate for IHS
    command: /opt/myapp/bin/gskcmd -cert -create -db /opt/myapp/key.kdb -label IHS -expire 3650 -size 2048 -dn "CN={{ hostname}}" -default_cert yes -pw password
    
por Vowner 27.11.2018 / 15:58

1 resposta

2

Você não precisa ecoar nada para "obter" o nome do host. Já é um dos fatos reunidos da Ansible, ansible_nodename . Você só precisa usá-lo.

    command: /opt/myapp/bin/gskcmd -cert -create -db /opt/myapp/key.kdb -label IHS -expire 3650 -size 2048 -dn "CN={{ansible_nodename}}" -default_cert yes -pw password

Dependendo do que você está fazendo, pode ser necessário usar um dos fatos alternativos, ansible_hostname ou inventory_hostname .

Essas variáveis são definidas da seguinte maneira:

  • inventory_hostname é o nome do host como está definido no seu inventário Ansible. Por exemplo, www.internal-name.example .
  • ansible_hostname é o nome do host não qualificado conforme informado pelo sistema. Por exemplo, www .
  • ansible_nodename é o nome completo do host conforme informado pelo sistema. Por exemplo, www.example.com .
por 27.11.2018 / 16:15