amazon-web-services - 如何从 Ansible 中的主机变量中获取值?
问题描述
我可以使用以下代码运行 EC2 实例。公共 DNS (IP) 将位于demogroup
.
- hosts: localhost
gather_facts: no
vars_files:
- variables/vars.yml
- variables/encrypt-iam-account.yml
tasks:
- name: provision CentOS VM (EC2)
.
.
.
- name: add hosts to inventory **********
add_host:
hostname: '{{ item.public_ip }}'
groupname: demogroup
ansible_ssh_common_args: "-o StrictHostKeyChecking=no"
ansible_ssh_private_key_file: keypair-for-ansible.pem
loop: '{{ ec2.instances }}'
- hosts: demogroup
gather_facts: no
remote_user: centos
tasks:
- name: wait for SSH
.
.
.
- name: generate the key, x509 *******
expect:
command: openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
responses:
'Enter pass phrase for ca-key.pem': "12345"
'Country Name': "th"
'State or Province Name': "Bangkok"
'Locality Name': "Sukhumwit"
'Organization Name': "Kixxxx"
'Organizational Unit Name': "DevTeam"
'Common Name': "{{ hostvars[groups['demogroup']['xxxxx']] }}"
'Email Address': "sample@kixxxx.com"
no_log: false
register: mycmd
- debug:
var: mycmd
在同一个 YAML 文件中,我想获取每个公共 DNS 以便分配给'Common Name'
在这一行'Common Name': "{{ hostvars[groups['demogroup']['xxxxx']] }}"
。如何从中获取每个公共 DNS (IP) demogroup
?
先感谢您。
解决方案
推荐阅读
- angular - 如何将字符串转换为角度变量?
- javascript - 从ckeditor直接上传图片到amazon s3
- javascript - 如何在 Vue.js 的 v-for 中绑定图像?
- node.js - 在 azure blob 子容器中从本地上传 zip
- nginx - nginx反向代理服务器多网站文件整理
- javascript - 在 javascript 中执行日期过滤器的最佳方法是什么?
- javascript - 在哪里可以找到 TypeScript 或 JavaScript 中的视频索引器代码示例
- java - SocketChannel.write() 在尝试写入大缓冲区时抛出 OutOfMemoryError
- c - OpenAL 库与 cMake 的链接
- python - 如何计算列表中的特定数字