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 пароль

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

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

1 ответ

Решение

Вам не нужно ничего повторять, чтобы "получить" имя хоста. Это уже один из собранных фактов 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,
Другие вопросы по тегам