ansible - 如何获取主机名并创建自签名证书

ansible - 如何获取主机名并创建自签名证书

我有为 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

答案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

相关内容