История изменений
Исправление SpaceRanger, (текущая версия) :
Держу в курсе происходящего. Возможно кому-то будет полезно, а может кто и укажэет на корявость решения.
Кароч, пока получилось вот так.
---
- name: update config
hosts: all
vars_files:
- "vars/virtual_observer"
tasks:
- name: trying the same in shell
shell:
cd /home/observer/test_ansible; ls | grep -E "test_[0-9]+"
register: out
- debug: var=out.stdout_lines
register: foo_result
- name: the final result
debug: var=foo_result
- name: copy output to a file
local_action:
module: copy
content: "{{ out.stdout_lines }}"
dest: "{{ playbook_dir }}/{{ inventory_hostname }}"
- name: update local var file
delegate_to: localhost
local_action: command python main.py "{{ inventory_hostname }}"
- name: delete temporary config file
delegate_to: localhost
file:
path: "{{ playbook_dir }}/{{ inventory_hostname }}"
state: absent
- name: test lookup
debug:
msg: "Host is {{ item.name }}, port1 is {{ item.port1 }} and port2 is {{ item.port2 }}"
loop: "{{ namehost }}"
- name: templating
template:
src: sys.config.j2
dest: "/home/observer/test_ansible/{{ item.name }}/sys.config"
loop: "{{ namehost }}"
Соответственно, файлик, который я создаю (типа вроде как переменные)
namehost:
- name: test_1
port1: 1201
port2: 5601
- name: test_2
port1: 1202
port2: 5602
- name: test_3
port1: 1203
port2: 5603
- name: test_4
port1: 1204
port2: 5604
- name: test_5
port1: 1205
port2: 5605
Ну и шаблон Jinja для тестовых целей совсем простенький
This one goes to {{inventory_hostname}}
{{item.name}}
{{item.port1}}
{{item.port2}}
Пока что вопрос один - до того, как у меня отработает первая таска, никакого файла в vars_files у меня нет и вылетает с ошибкой об этом печальном факте. Подскажите, как этот филе создавать и чекать в процесе выполнения.
Так же хочу поплакаться об отстойности документации по ансиблу даже на официальном сайте.
Заранее высылаю лучи токсичной маскулинности
Исправление SpaceRanger, :
Держу в курсе происходящего. Возможно кому-то будет полезно, а может кто и укажэет на корявость решения.
Кароч, пока получилось вот так.
---
- name: update config
hosts: all
vars_files:
- "vars/virtual_observer"
tasks:
- name: trying the same in shell
shell:
cd /home/observer/test_ansible; ls | grep -E "test_[0-9]+"
register: out
- debug: var=out.stdout_lines
register: foo_result
- name: the final result
debug: var=foo_result
- name: copy output to a file
local_action:
module: copy
content: "{{ out.stdout_lines }}"
dest: "{{ playbook_dir }}/{{ inventory_hostname }}"
- name: update local var file
delegate_to: localhost
local_action: command python main.py "{{ inventory_hostname }}"
- name: delete temporary config file
delegate_to: localhost
file:
path: "{{ playbook_dir }}/{{ inventory_hostname }}"
state: absent
- name: test lookup
debug:
msg: "Host is {{ item.name }}, port1 is {{ item.port1 }} and port2 is {{ item.port2 }}"
loop: "{{ namehost }}"
- name: templating
template:
src: sys.config.j2
dest: "/home/observer/test_ansible/{{ item.name }}/sys.config"
loop: "{{ namehost }}"
Соответственно, файлик, который я создаю (типа вроде как переменные)
namehost:
- name: test_1
port1: 1201
port2: 5601
- name: test_2
port1: 1202
port2: 5602
- name: test_3
port1: 1203
port2: 5603
- name: test_4
port1: 1204
port2: 5604
- name: test_5
port1: 1205
port2: 5605
Ну и шаблон Jinja для тестовых целей совсем простенький
This one goes to {{inventory_hostname}}
{{item.name}}
{{item.port1}}
{{item.port2}}
Пока что вопрос один - до того, как у меня отработает первая таска, никакого файла в vars_files у меня нет и вылетает с ошибкой об этом печальном факте. Подскажите, как этот филе создавать и чекать в процесе выполнения.
Заранее высылаю лучи токсичной маскулинности
Исходная версия SpaceRanger, :
Держу в курсе происходящего. Возможно кому-то будет полезно, а может кто и укажэет на корявость решения.
Кароч, пока получилось вот так.
---
- name: update config
hosts: all
vars_files:
- "vars/virtual_observer"
tasks:
- name: trying the same in shell
shell:
cd /home/observer/test_ansible; ls | grep -E "test_[0-9]+"
register: out
- debug: var=out.stdout_lines
register: foo_result
- name: the final result
debug: var=foo_result
- name: copy output to a file
local_action:
module: copy
content: "{{ out.stdout_lines }}"
dest: "{{ playbook_dir }}/{{ inventory_hostname }}"
- name: update local var file
delegate_to: localhost
local_action: command python main.py "{{ inventory_hostname }}"
- name: delete temporary config file
delegate_to: localhost
file:
path: "{{ playbook_dir }}/{{ inventory_hostname }}"
state: absent
- name: test lookup
debug:
msg: "Host is {{ item.name }}, port1 is {{ item.port1 }} and port2 is {{ item.port2 }}"
loop: "{{ namehost }}"
- name: templating
template:
src: sys.config.j2
dest: "/home/observer/test_ansible/{{ item.name }}/sys.config"
loop: "{{ namehost }}"
Соответственно, файлик, который я создаю (типа вроде как переменные)
namehost:
- name: test_1
port1: 1201
port2: 5601
- name: test_2
port1: 1202
port2: 5602
- name: test_3
port1: 1203
port2: 5603
- name: test_4
port1: 1204
port2: 5604
- name: test_5
port1: 1205
port2: 5605
Ну и шаблон Jinja для тестовых целей совсем простенький
This one goes to {{inventory_hostname}}
{{item.name}}
{{item.port1}}
{{item.port2}}