首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ansible -从远程机器上的文件中获取密钥对值并填充变量

Ansible -从远程机器上的文件中获取密钥对值并填充变量
EN

Stack Overflow用户
提问于 2020-08-27 13:02:10
回答 1查看 133关注 0票数 2

尝试从.yaml文件中提取密钥对值并将其填充到变量中:

/etc/puppetlabs/puppet/csr_attributes.yaml tes.yaml

文件示例:

代码语言:javascript
运行
复制
extension_requests:
  pp_service: 'private'
  pp_instance_id:  'blah'
  pp_image_name:  'RedHat 7.7 Base'
  pp_project:  'TBT'
  pp_application:  'xxxxx'
  pp_environment: 'dev'
  pp_role: 'base_stuff'
  pp_software_version: '2020-04-30'
  pp_provisioner: 'Ansible Tower'
  pp_datacenter: 'DC2'
  pp_zone: 'C6600_NPE_RS'
  pp_cloudplatform: 'esx'
  pp_apptier: 'dev'
  pp_securitypolicy: 'Stuff'
  1.3.6.1.4.1.34380.1.2.1:  ''
  1.3.6.1.4.1.34380.1.2.2:  '8'
  1.3.6.1.4.1.34380.1.2.3:  '77504'

我可以通过行号来实现,但我需要更多的动态性,因为不同服务器的行会有所不同:

当前单行代码:

代码语言:javascript
运行
复制
- name: cat file
  shell: cat /etc/puppetlabs/puppet/csr_attributes.yaml
  register: cat_content_file

- set_fact:
    pp_service: "pp_service: {{ cat_content_file.stdout_lines[2].split()[1] }}"
    pp_application: "pp_application: {{ cat_content_file.stdout_lines[6].split()[1] }}"

- debug:
    msg:
    - "{{ pp_service }}"
    - "{{ pp_application }}"

我想我需要把输出转换成字典,但是我完全不知道怎么做。任何建议都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2020-08-27 14:51:56

您可以组合使用filefrom_yaml

代码语言:javascript
运行
复制
  - set_fact:
      your_variable: "{{ lookup('file','/etc/puppetlabs/puppet/csr_attributes.yaml') | from_yaml }}"
  - debug: var=your_variable.extension_requests.pp_service
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63609497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档