@pro_ansible

Страница 569 из 625
Alexander
04.09.2018
18:49:22
ansible 2.4.2.0 если что

Wom
04.09.2018
18:49:34
структуру каталогов и плейбук как запускаешь?

Alexander
04.09.2018
18:50:19
как роль

ansible-playbook -i hosts play.yml cat play.yml --- - hosts: 10.0.2.30 become: true roles: - role1

Google
Wom
04.09.2018
18:52:04
вывод с дебагом куда-нибудь выложи

Alexander
04.09.2018
18:53:03
Думаю, не смотрит просто эта версия на templates

вывод с дебагом куда-нибудь выложи
Спасибо, я пока подзабью. Думал, может очевидное что-то я не учёл, разбираться не охота долго.

Wom
04.09.2018
18:54:21
забавно, в 2.4 у меня работало

Vadim
04.09.2018
18:54:47
оно и в 2.6 работает, но нет логов - нет компотика

Wom
04.09.2018
18:55:50
у меня сейчас 2.6 и работает

bebebe
04.09.2018
18:56:55
я что-то пропустил, или 2.6.x стало модно?

Alexander
04.09.2018
18:59:30
Спасибо за помощь, причина - вместо template использовал copy. Думал, поменял, а вон оно чо ) Отдохнуть надобно, наверное )

bebebe
04.09.2018
19:00:12
Alexander
04.09.2018
19:00:44
Обфусцировать лень было, а так выкладывать не хотел

bebebe
04.09.2018
19:01:22
понятно, центр психологический поддержки ansible

Wom
04.09.2018
19:02:14
я что-то пропустил, или 2.6.x стало модно?
на тестовых средах я 2.6 гоняю

bebebe
04.09.2018
19:03:12
а я что-то на 2.5.x засиделся

Google
bebebe
04.09.2018
19:03:25
надо попробовать тег обновить и CI прогнать

Nklya
04.09.2018
19:05:53
там уже 2.7 на подходе

Alexander
04.09.2018
19:08:59
уже же есть unstable

Udjin
04.09.2018
23:42:20
Всем привет есть такая таска: - 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 таска должна для каждого айпишника, на котором плей запущен, подставить линию с айпишником. ЧЯДНТ?

а в результате выхлоп такой:

```#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'] ````

никто не подскажет?

Div
05.09.2018
06:39:59
привет коллеги, нашел интересное решение для добавления хостов в ~/.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?

Artem
05.09.2018
06:45:35
зачем их туда добавлять? ?

Div
05.09.2018
06:52:35
например для использования git

то, что я нашел работает без нареканий, но это костыль и хотелось бы использовать нативный модуль.

Vlad
05.09.2018
07:02:49
При таком добавлении теряется смысл проверять ключ сервера. Нужно хранить ключ в своем git репозитории и его добавлять в known_hosts.

Wom
05.09.2018
07:26:17
С одним коммитером

Div
05.09.2018
08:36:41
тут я с вами полностью согласен. но как мне тогда обойти host key проверку при выполении git clone на свежесозданной машине?

без добавления ключа роль тупо вываливается...

интернеты вообще чушь советуют с отключением проверки.

Google
Paul
05.09.2018
08:39:19
bebebe
05.09.2018
08:42:47
Хранить этот ключ в репо и ролью его добавлять.
+ если у вас ынтыпрайз или полупродакш если домашний проект, то вполне ssh-keyscan

Div
05.09.2018
08:45:04
у меня как вы говорите "ынтырпрайз" на базе древних опнсорс тулз. нужно сделать красиво.

bebebe
05.09.2018
08:46:24
делайте по красоте

Div
05.09.2018
08:47:21
делаю. отсюда и вопросы.

например в случае использования репо для ключей, как оттуда добавлять ключи если я всеравно упрусь в проверку ключа при добавлении?

bebebe
05.09.2018
08:49:06
надо сказать. что предыдущий вопрос к ансибл никакого отношения не имеет, лучше в @devops_ru спрашивать

Div
05.09.2018
08:49:16
ок

bebebe
05.09.2018
08:49:17
или где там рассадник их

Nklya
05.09.2018
09:26:44
Если репа например в гитлабе хранится, ее можно через токен копировать и не нужно никаких ключей

Terminator
05.09.2018
09:50:00
@krionfreebsd будет жить. Поприветствуем!

Kirill
05.09.2018
09:51:46
вопрос по jinja, есть inventory, например такой:

ubuntu1 ansible_host=139.59.131.125 ubuntu2 ansible_host=104.248.23.35 [zncpbs] ubuntu[1:2]

теперь пытаюсь взять эту группу из inventory и отдать в темплейт

{% set comma = joiner(",") %} {% for host in groups['zncpbs'] -%} Match Host {{ hostvars[host]['ansible_eth0']['ipv4']['address'] }}{{ comma() }} PasswordAuthentication yes {%- endfor %}

но он по логике делает 4 строки: Match Host 139.59.131.125 PasswordAuthentication yes и еще Match Host 104.248.23.35 PasswordAuthentication yes, но нам то надо Match Host IP, IP и уже затем PasswordAuthentication yes c indent 4

Google
bebebe
05.09.2018
09:59:23
а вижу.

Kirill
05.09.2018
09:59:47
ну пытаюсь тут запятую нарисатьва

bebebe
05.09.2018
10:01:10
{% for host in groups['zncpbs'] %} {% set ipaddr = hostvars[host]['ansible_eth0']['ipv4']['address'] %} Match Host {{ ipaddr }}, {{ ipaddr }} PasswordAuthentication yes {% endfor %}

Kirill
05.09.2018
10:02:59
спасибо, сейчас посмотрю

а если хостов в группе не два, а 10 ?

Admin
ERROR: S client not available

Kirill
05.09.2018
10:05:39
не мэтчится: fatal: [ubuntu1]: FAILED! => {"changed": false, "checksum": "d75b47027bc5b9ad11de51f25591767175646771", "exit_status": 255, "msg": "failed to validate", "stderr": "Missing Match criteria for 139.59.131.125\r\n/root/.ansible/tmp/ansible-tmp-1536141835.33-97471998377108/source line 113: Bad Match condition\r\n", "stderr_lines": ["Missing Match criteria for 139.59.131.125", "/root/.ansible/tmp/ansible-tmp-1536141835.33-97471998377108/source line 113: Bad Match condition"], "stdout": "", "stdout_lines": []}

bebebe
05.09.2018
10:07:24
а если хостов в группе не два, а 10 ?
Match Host {{ groups['zncpbs'] | map('extract', hostvars, ['ansible_eth0', 'ipv4', 'address']) | join(',') }} PasswordAuthentication yes

bebebe
05.09.2018
10:20:18
спасибо большое, теперь как надо
когда перейдете на 2.6.x, эта коснтрукция поломается, как вчера выяснилось в 2.6.x ansible_eth0.ipv4 не dict, а array of dict будет ['ansible_eth0', 'ipv4', 0, 'address]

Kirill
05.09.2018
10:27:03
хм, на 2.6.3 протестировал и все работает

bebebe
05.09.2018
10:35:13
Или не поломается

спасибо!
У вас на en0 висело больше одного ойпи адреса?

bebebe
05.09.2018
10:38:14
По идеи не должно быть разницы в фактах..

В иерархии и структуре. Непонятно

zhag
05.09.2018
11:04:48
у меня ansible генерит ssh ключ, как я его могу взять потом и положить в переменную?

Подскажите пожалуйста

Nazar
05.09.2018
11:05:34
with_file

Google
bebebe
05.09.2018
11:07:39
Подскажите пожалуйста
если ключ генерится на той же машине, где и запускается ansible, то можно делать lookup('FILE', '/path/to/ssh_key')

zhag
05.09.2018
11:08:01
Нет, ключ генерится на удаленном сервере

Aleksey
05.09.2018
11:17:01
Terminator
05.09.2018
11:22:49
@blx1m0 будет жить. Поприветствуем!

Ievgen
05.09.2018
14:29:52
мм а кто то работает с ansible через python api? есть вопрос - что то поменялось при переходе с 2.6.0 на 2.6.1 и напиленный на питоне ланчер не понимает переменные из group_vars/all.yml - никто не сталкивался? Или надо копать?

Terminator
05.09.2018
14:42:29
@x3medima17 будет жить. Поприветствуем!

Dumitru
05.09.2018
14:43:35
всем привет который час не могу добавить текст в конец строки в ансибле по regexp lineinfile умеет дописывать или удалять строки, а вот добавить слово в конец у меня не вышло уже прошу помощи у комьюнити

Dumitru
05.09.2018
14:51:56
покажите что вы делаете, исходный кусок текста, и желаемый
есть файл с ip адресами: 35.242.242.12 35.234.84.101 35.198.128.175 и список ключей в формате private:public хочу добавить каждой строчке по одной паре, чтобы в конце вышло так: 35.242.242.12;<priv>;<pub> 35.234.84.101;<priv>;<pub> 35.198.128.175;<priv>;<pub> делаю это все локально, один раз

лучше на pastebin куда-нибудь
думаю там немного

Dumitru
05.09.2018
14:56:32
все оказалось так просто ? спасибо большое!

- name: regex replace: path: ./f.txt regexp: '$' replace: 'private;public' backup: no
А как в этом случае заменить только одну строку, а не все?

Dumitru
05.09.2018
15:16:04
у меня 3 строки с ip адресами, они в любом случае попадут все под регекс

Страница 569 из 625