Андрей
Womchik
Андрей
bebebe
ну так почти копипаста :)
а если запустить ansible -m setup <TARGET_HOST> | sed '1s/.*/{/' | jq '.ansible_facts.ansible_en0.ipv4.address' ?
Андрей
bebebe спасибо!
Womchik
bebebe
sed должен был удалить то что портило json... а какой у вас ansible?
впрочем возвращасяь к вопросу, ansible -m setup <TARGET_HOST> | vim -R - и попробуйте найти ansible_en0
Womchik
есть и адрес у него есть
bebebe
есть и адрес у него есть
тогда вернемся к:
hostvars['localhost']['{{ 'ansible_' + iface}}'].ipv4.address
вы localhost меняли? :)
bebebe
и все таки напишите версию ansible, может быть она старая?
Womchik
bebebe
дайте доступ (бггг) :D
Womchik
ok: [localhost] => {
"hostvars['localhost']['ansible_en1'].ipv4": [
{
"address": "192.168.3.47",
"broadcast": "192.168.3.255",
"netmask": "255.255.255.0",
"network": "192.168.3.0"
}
]
}
Womchik
добавляешь address - и сразу облом
bebebe
о! в вашем ansible это list of maps
bebebe
hostvars['localhost']['{{ 'ansible_' + iface}}'].ipv4[0].address
bebebe
в моем это просто map
bebebe
@womchik
hostvars['localhost']['{{ 'ansible_' + iface}}'].ipv4[0].address
вот так должно сработать
Womchik
Emil
всем привет
Emil
- name: Install tomcat
shell: mv "/tmp/apache-tomcat-8.5.{{ release }}* /opt/{{ instance_root }}"
Emil
fatal: [office-tomcat-test]: FAILED! => {"changed": true, "cmd": "mv \"/tmp/apache-tomcat-8.5.33* /opt/rmtr\"", "delta": "0:00:00.002745", "end": "2018-09-04 17:32:14.387734", "msg": "non-zero return code", "rc": 1, "start": "2018-09-04 17:32:14.384989", "stderr": "mv: missing destination file operand after ‘/tmp/apache-tomcat-8.5.33* /opt/rmtr’\nTry 'mv --help' for more information.", "stderr_lines": ["mv: missing destination file operand after ‘/tmp/apache-tomcat-8.5.33* /opt/rmtr’", "Try 'mv --help' for more information."], "stdout": "", "stdout_lines": []}
Emil
и копирование тоже не проходит
Emil
че он хочет
Emil
на серваке командой все ок
Oleksandr
mv directory?
Emil
ага или копирование
Oleksandr
а если с -R ?
Emil
пишет такого аргумента нет
Oleksandr
```- name: Install tomcat
shell: mv -R "/tmp/apache-tomcat-8.5.{{ release }}* /opt/{{ instance_root }}" ``` Так?
Emil
если модуль copy то
fatal: [office-tomcat-test]: FAILED! => {"changed": true, "cmd": "mv -R \"/tmp/apache-tomcat-8.5.33 /opt/rmtr\"", "delta": "0:00:00.002463", "end": "2018-09-04 17:38:17.358059", "msg": "non-zero return code", "rc": 1, "start": "2018-09-04 17:38:17.355596", "stderr": "mv: invalid option -- 'R'\nTry 'mv --help' for more information.", "stderr_lines": ["mv: invalid option -- 'R'", "Try 'mv --help' for more information."], "stdout": "", "stdout_lines": []}
Vadim
вайлдкарды - это плохо, пнтятнеко? Их надо экранировать (а лучше убрать)
Emil
bebebe
Maksim
Никто не сталкивался с тем что ansible при выполнении плейбука работает в LANG=C и в итоге в переменных окружения сервисов которые он запускает тое стоит LANG=C ?
Maksim
началось после обновления до 2.6.3
Eduard
Alexander
Слушьте, а вот лежат в role1/templates/ файлы, а я из role1/tasks к ним только по относительному пути могу обращаться? Типа ../templates/template1.j2`можно, а нельзя типа `template1.j2? Ну, вроде $PATH что-то...
Womchik
можно просто по имени
Alexander
Надо авторам нововведения нередактируемой строки кода руки оторвать
Womchik
"назови меня просто по имени..."
Womchik
-vvv
Alexander
Он в files и tasks смотрит, а в templates нет.
Womchik
Could not find or access
вот в таком формате пути указывать не надо - https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html
Womchik
Alexander
Так я запустил, по результату и говорю.
Alexander
ansible 2.4.2.0 если что
Womchik
структуру каталогов и плейбук как запускаешь?
Alexander
как роль
Alexander
ansible-playbook -i hosts play.yml
cat play.yml
---
- hosts: 10.0.2.30
become: true
roles:
- role1
Womchik
вывод с дебагом куда-нибудь выложи
Alexander
Думаю, не смотрит просто эта версия на templates
Womchik
забавно, в 2.4 у меня работало
Vadim
оно и в 2.6 работает, но нет логов - нет компотика
Womchik
у меня сейчас 2.6 и работает
bebebe
я что-то пропустил, или 2.6.x стало модно?
Alexander
Спасибо за помощь, причина - вместо template использовал copy. Думал, поменял, а вон оно чо )
Отдохнуть надобно, наверное )
bebebe
Alexander
Обфусцировать лень было, а так выкладывать не хотел
bebebe
понятно, центр психологический поддержки ansible
Womchik
bebebe
а я что-то на 2.5.x засиделся
bebebe
надо попробовать тег обновить и CI прогнать
Nklya
там уже 2.7 на подходе
Alexander
уже же есть unstable
Sergey
Udjin
Всем привет
есть такая таска:
- name: Reading play hosts
set_fact:
my_hosts: "{{ hostvars[item]['ansible_ssh_host']}}"
with_items: "{{ play_hosts }}"
tags:
- playhosts
- debug: msg="{{my_hosts}}"
tags:
- playhosts
- name: Adding target to prometheus server
blockinfile:
dest: "/etc/prometheus/prometheus.yml"
insertafter: EOF
backup: no
marker: "#{{inventory_hostname}}"
block: |2
- job_name: '{{inventory_hostname}}'
static_configs:{%- for m in my_hosts %}
- targets: ['{{hostvars[m]}}:9100']
{% endfor %}
tags:
- playhosts
таска должна для каждого айпишника, на котором плей запущен, подставить линию с айпишником.
ЧЯДНТ?
Udjin
а в результате выхлоп такой:
Udjin
```#my_hostname
- job_name: 'my_hostname'
static_configs: - targets: [':9100']
- targets: [':9100']
- targets: [':9100']
- targets: [':9100']
- targets: [':9100']
- targets: [':9100']
- targets: [':9100']
- targets: [':9100']
- targets: [':9100']
- targets: [':9100']
````
Udjin
никто не подскажет?
bebebe
Div
привет коллеги, нашел интересное решение для добавления хостов в ~/.ssh/known_hosts
lineinfile:
dest: /root/.ssh/known_hosts
create: yes
state: present
line: "{{ lookup('pipe', 'ssh-keyscan -t rsa github.com') }}"
regexp: "^github\\.com"
кто то пробовал это делать модулем known_hosts?
Tadeusz
зачем их туда добавлять? 🤣
Div
например для использования git
Div
то, что я нашел работает без нареканий, но это костыль и хотелось бы использовать нативный модуль.
Vlad
При таком добавлении теряется смысл проверять ключ сервера. Нужно хранить ключ в своем git репозитории и его добавлять в known_hosts.
Sergey