可以从用户输入中读取 openssl public 密钥(.pem)内容并在服务器上创建文件

ansible to read openssl public key (.pem) content from user input and create a file on server

我基本上是在创建一个用于创建 pkcs12 文件的剧本,其中要求 public 密钥 (.pem) 和私钥。我的私钥在服务器上,所以我可以传递文件的位置。但是我的 public 密钥 (.pem) 不在服务器上,我也无法从本地复制粘贴。 所以我想创建一个 ansible-playbook,它可以从用户读取 public 关键内容作为变量,并在远程服务器上创建一个文件以用于创建 pkcs12 文件。

我的public关键内容分布在多行中,如下所示。

-----BEGIN CERTIFICATE-----
(64-character alphanumeric content)
.
.
.
.
-----END CERTIFICATE-----

您能否建议实现此目的的简单方法。 我正在使用复制模块 'content' 选项,但无法实现。

  tasks:
  - name: copy content
    copy:
     content: "{{ my_pub_key }}"
     dest: /tmp/{{file}}.pem

ansible-playbook abc.yaml -e "my_pub_key=
-----BEGIN CERTIFICATE-----
.
.
.
.
-----END CERTIFICATE-----

”~ 请建议是否有任何其他方法可以实现此目的?

不太清楚,下面的语句是什么意思。从问题来看,猜测目标文件中没有写入任何内容。

...but unable to achieve this...

你的任务看起来不错。但是,要将多行字符串作为参数传递,请添加引号 (') 来定义这样的变量值。

$ ansible-playbook abc.yaml -e "my_pub_key='
-----BEGIN CERTIFICATE-----
.
.
.
.
-----END CERTIFICATE-----'"