Size: a a a

2021 March 05

PK

Pavel Kozlov in Ansible
Pavel Gassan
не проще сделать json to yaml и подключить этот yaml как варс?
или я чего принципиального не понимаю?
источник

PG

Pavel Gassan in Ansible
тебе варс надо назвать как-то, а то не сработает
источник

PK

Pavel Kozlov in Ansible
Pavel Gassan
тебе варс надо назвать как-то, а то не сработает
т.е. не set_fact а defaults/main.yml
источник

PG

Pavel Gassan in Ansible
vars:
     jsonvar: "json_file.json | from_json }}"

а потом обращайся к jsonvar
{{jsonvar['srv04']['hardware']}}
источник

PK

Pavel Kozlov in Ansible
Pavel Gassan
vars:
     jsonvar: "json_file.json | from_json }}"

а потом обращайся к jsonvar
{{jsonvar['srv04']['hardware']}}
предварительно заменив srv04 на ansible_host ?
источник

PG

Pavel Gassan in Ansible
да, смотря что вам надо там получить
источник

PG

Pavel Gassan in Ansible
у меня вот так подключен файл
vars:
     jsonvar: "{{ lookup('file', './tui.json') | from_json }}"
источник

PK

Pavel Kozlov in Ansible
т.е. вариант с vars_files не очень корректен так как ждет yml по умолчанию?
источник

PK

Pavel Kozlov in Ansible
Pavel Gassan
у меня вот так подключен файл
vars:
     jsonvar: "{{ lookup('file', './tui.json') | from_json }}"
ага, спасибо, сейчас так переделаю, так читабельней чем у меня было
источник

TG

Timur Gadiev in Ansible
Pavel Kozlov
  set_fact:
   network_team_configuration: "{{ [ansible_host]['hardware']['network']['enable_team'] }}"

task
В какой переменной хранится этот json?
источник

PK

Pavel Kozlov in Ansible
Timur Gadiev
В какой переменной хранится этот json?
он подключался через
 vars_files:
   - "cmdb_physical_servers.json"

или вы о том что ансибл не знал где именно искать ?
источник

TG

Timur Gadiev in Ansible
Pavel Kozlov
он подключался через
 vars_files:
   - "cmdb_physical_servers.json"

или вы о том что ансибл не знал где именно искать ?
Вы неправильно к переменной обращаетесь
источник

TG

Timur Gadiev in Ansible
hostvars[inventory_hostname][ansible_host]['hardware']['network']['enable_team']
источник

FT

Full Throttle in Ansible
Народ, дайте подсказку, плз, чет запутался.
Есть такая таска:
- name: add certificates
 blockinfile:
   path: /home/user/cacert.pem
   insertafter: EOF
   block: "{{ lookup('file', item) }}"
 loop: "{{ lookup('fileglob', 'files/*.crt', wantlist=True) }}"
По задумке, должно в хвост cacert.pem накидать сертификатов из files.
Ошибок нет, но оставляет только последний сертификат.
Если сделать что-то типа такого:
  - name: debug                                                                                                                                                                                                  
   debug:                                                                                                                                                                                                      
     msg: "{{ lookup('file', item) }}"                                                                                                                                                                          
   loop: "{{ lookup('fileglob', 'files/*.crt', wantlist=True) }}"
Нормально проходит по всем.

Что я упустил?
источник

TG

Timur Gadiev in Ansible
Timur Gadiev
hostvars[inventory_hostname][ansible_host]['hardware']['network']['enable_team']
А, не, вру
источник

TG

Timur Gadiev in Ansible
Это не в фактах же
источник

TG

Timur Gadiev in Ansible
Pavel Kozlov
он подключался через
 vars_files:
   - "cmdb_physical_servers.json"

или вы о том что ансибл не знал где именно искать ?
Протестил ваш вариант
источник

TG

Timur Gadiev in Ansible
Просто vars_files нормально работает
источник

TG

Timur Gadiev in Ansible
---
- name: Test facts
 hosts: localhost
 gather_facts: yes
 vars_files: cmdb_physical_servers.json
 vars:
   ansible_connection: local
   ansible_host: srv04
 tasks:
   - name: Debug ansible_host
     debug:
       var: ansible_host

   - name: Debug lookup
     debug:
       var: lookup('vars', ansible_host)
источник

TG

Timur Gadiev in Ansible
PLAY [Test facts] ************************

TASK [Gathering Facts] **************************
ok: [localhost]

TASK [Debug ansible_host] ******************
ok: [localhost] =>
 ansible_host: srv04

TASK [Debug body] *********************
ok: [localhost] =>
 lookup('vars', ansible_host):
   hardware:
     network:
       enable_team: true
источник