Ansible

ansible - 如何獲取主機名並創建自簽名證書

  • November 27, 2018

我有為 IHS 伺服器的 .kdb 文件創建自簽名證書的有效命令,我試圖通過 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

您無需回顯任何內容即可“獲取”主機名。這已經是 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_hostnameinventory_hostname.

這些變數設置如下:

  • inventory_hostname是在 Ansible 清單中設置的主機名。例如www.internal-name.example.
  • ansible_hostname是系統報告的非限定主機名。例如www.
  • ansible_nodename是系統報告的標準主機名。例如www.example.com.

引用自:https://serverfault.com/questions/941836