Назад | Перейти на главную страницу

ansible -как подобрать имя хоста и создать самоподписанный сертификат

У меня есть рабочая команда для создания самоподписанного сертификата для файла .kdb сервера IHS, и я пытался использовать ту же команду через ansible. Моя цель здесь состоит в том, чтобы ansible обнаруживал имя хоста серверов приложений и использовал это имя для "-dn" команды. Ниже представлена ​​рабочая команда

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

но ниже моя игра и ее синтаксическая ошибка

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

Вам не нужно ничего выводить, чтобы "получить" имя хоста. Это уже один из фактов, собранных Ansible, ansible_nodename. Вам просто нужно его использовать.

    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

В зависимости от того, что вы делаете, вам может понадобиться использовать один из альтернативных фактов, ansible_hostname или inventory_hostname.

Эти переменные устанавливаются следующим образом:

  • inventory_hostname - это имя хоста, заданное в вашем инвентаре Ansible. Например www.internal-name.example.
  • ansible_hostname - это неполное имя хоста, сообщенное системой. Например www.
  • ansible_nodename - это полное имя хоста, сообщаемое системой. Например www.example.com.