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

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

[ root @ myhostbin] # ./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
2
задан 27 November 2018 в 16:58
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 .
2
ответ дан 3 December 2019 в 11:24

Теги

Похожие вопросы