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
,