Sergey
Single source of truth = репозиторий с проектом, и ничто иное
Womchik
С одним коммитером
Div
тут я с вами полностью согласен. но как мне тогда обойти host key проверку при выполении git clone на свежесозданной машине?
Div
без добавления ключа роль тупо вываливается...
Div
интернеты вообще чушь советуют с отключением проверки.
Div
bebebe
+ если у вас ынтыпрайз или полупродакш
если домашний проект, то вполне ssh-keyscan
Div
у меня как вы говорите "ынтырпрайз" на базе древних опнсорс тулз. нужно сделать красиво.
bebebe
делайте по красоте
Div
делаю. отсюда и вопросы.
Div
например в случае использования репо для ключей, как оттуда добавлять ключи если я всеравно упрусь в проверку ключа при добавлении?
bebebe
надо сказать. что предыдущий вопрос к ансибл никакого отношения не имеет, лучше в @devops_ru спрашивать
Div
ок
bebebe
или где там рассадник их
Nklya
Если репа например в гитлабе хранится, ее можно через токен копировать и не нужно никаких ключей
Kirill
вопрос по jinja, есть inventory, например такой:
Kirill
ubuntu1 ansible_host=139.59.131.125
ubuntu2 ansible_host=104.248.23.35
[zncpbs]
ubuntu[1:2]
Kirill
теперь пытаюсь взять эту группу из inventory и отдать в темплейт
Kirill
{% set comma = joiner(",") %}
{% for host in groups['zncpbs'] -%}
Match Host {{ hostvars[host]['ansible_eth0']['ipv4']['address'] }}{{ comma() }}
PasswordAuthentication yes
{%- endfor %}
Kirill
но он по логике делает 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
Div
bebebe
bebebe
а вижу.
Kirill
ну пытаюсь тут запятую нарисатьва
bebebe
{% for host in groups['zncpbs'] %}
{% set ipaddr = hostvars[host]['ansible_eth0']['ipv4']['address'] %}
Match Host {{ ipaddr }}, {{ ipaddr }}
PasswordAuthentication yes
{% endfor %}
Kirill
спасибо, сейчас посмотрю
Kirill
а если хостов в группе не два, а 10 ?
Kirill
не мэтчится: 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
а если хостов в группе не два, а 10 ?
Match Host {{ groups['zncpbs'] | map('extract', hostvars, ['ansible_eth0', 'ipv4', 'address']) | join(',') }}
PasswordAuthentication yes
Kirill
bebebe
спасибо большое, теперь как надо
когда перейдете на 2.6.x, эта коснтрукция поломается, как вчера выяснилось в 2.6.x ansible_eth0.ipv4 не dict, а array of dict
будет ['ansible_eth0', 'ipv4', 0, 'address]
Kirill
хм, на 2.6.3 протестировал и все работает
bebebe
Или не поломается
bebebe
спасибо!
У вас на en0 висело больше одного ойпи адреса?
Womchik
Womchik
но это мак
bebebe
По идеи не должно быть разницы в фактах..
bebebe
В иерархии и структуре. Непонятно
zhag
у меня ansible генерит ssh ключ, как я его могу взять потом и положить в переменную?
zhag
Подскажите пожалуйста
Nazar
with_file
bebebe
Подскажите пожалуйста
если ключ генерится на той же машине, где и запускается ansible, то можно делать lookup('FILE', '/path/to/ssh_key')
zhag
Нет, ключ генерится на удаленном сервере
Aleksey
Ievgen
мм а кто то работает с ansible через python api? есть вопрос - что то поменялось при переходе с 2.6.0 на 2.6.1 и напиленный на питоне ланчер не понимает переменные из group_vars/all.yml - никто не сталкивался? Или надо копать?
Dumitru
всем привет
который час не могу добавить текст в конец строки в ансибле по regexp
lineinfile умеет дописывать или удалять строки, а вот добавить слово в конец у меня не вышло
уже прошу помощи у комьюнити
bebebe
bebebe
лучше на pastebin куда-нибудь
Dumitru
покажите что вы делаете, исходный кусок текста, и желаемый
есть файл с 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>
делаю это все локально, один раз
Dumitru
bebebe
Dumitru
все оказалось так просто 😕
спасибо большое!
Dumitru
bebebe
Dumitru
у меня 3 строки с ip адресами, они в любом случае попадут все под регекс
Ievgen
bebebe
Ievgen
да
Ievgen
запускаю playbook с нужными параметрами
Ievgen
через http api
Kirill
bebebe
через http api
типа как ansible tower/awx/semaphore? rest поверх ansible?
Dumitru
смотря какой регексп
я пока не смог такой придумать 🤔
так чтобы каждый раз дергал следующую строку
bebebe
Ievgen
Ievgen
ну и rundeck появился еще до того как awx стал чем то вменяемым
Ievgen
та в целом боли нет особо ) работает, кушать не просит особо, хистори тасков чистится по крону )
bebebe
у меня он там дюже стааарый (2.6.1) что-ли
bebebe
я даже версию побаиваюсь посмотреть, чтобы лишний раз не трогать и что бы оно не развалилось
Ievgen
)
bebebe
что-бы завершить оффтопик, вы rundeck для службы поддержки делаете?
Ievgen
не совсем, изначально чтобы быстро получить http интерфейс с динамическим inventory ну и как сайд эффект, те кто не умеют в ansible могут тыкать кнопочки
bebebe
не знаю на сколько вы закопались в rundeck, но по идеи awx вам больше подходит
Ievgen
надо тестить
Ievgen
awx умеет динамический inventory из амазона?
Vadim
умеет
Ievgen
тогда +1 за потестить