UglyKoyote
одна кнопка - "сделать звездато"
UglyKoyote
хотя... группа то меняться не будет. какого фига всё это) спасибо за помощь всем.
Антон
=)))
UglyKoyote
потом уже факультативно попробую решить проблему
Антон
ну смотрите, просто решение с папками проще всего
Aleksey
-m debug -a "msg={{ groups[variable_name.0] }}" вот так еще попробуй
Антон
если вам надо ничего не менять то надо крутить for а внутри его делать пачку if-ов получается
UglyKoyote
nginx1 | SUCCESS => { "msg": [ "nginx1", "nginx2" ] } nginx2 | SUCCESS => { "msg": [ "nginx1", "nginx2" ] } он упорно возвращает список
Aleksey
погоди, ты же сейчас получил что хотел ))
UglyKoyote
ноуп... мне имя группы надо
UglyKoyote
а оно вернуло имена нод в группе)
UglyKoyote
а..
UglyKoyote
не.. показалось) grpname1 [u'nginx1', u'nginx2']
Aleksey
вот так теперь в исходный шаблон и подставь: {% for host in groups[variable_name.0] %} {{ hostvars[host]['ansible_host'] }}
UglyKoyote
Перфекто! Благодарю за терпение
Aleksey
не за что ) просто там где переменная твоя объявляется - у тебя список с одним элементом, отсюда и вся проблема. была бы строка - заработало бы сразу
UglyKoyote
да вот, был бы питон - я бы давно уже "принудил" джинжу к миру. а тут как стена) всё таки надо меньше кофе пить
Антон
вот так теперь в исходный шаблон и подставь: {% for host in groups[variable_name.0] %} {{ hostvars[host]['ansible_host'] }}
я же насколько помню ansible_host - это хост, откуда запускали а не таргет
Антон
там вроде надо inventory_host
Aleksey
Timur
Странные вещи вы творите
Timur
Если нужна итерация по группе хостов (при этом группа заранее не известна и определяется через переменную, то все очень просто
Timur
{%- for host in groups[my_inventory_group] %}
Timur
Где my_inventory_group - переменная, содержащая имя группы хостов
Timur
я же насколько помню ansible_host - это хост, откуда запускали а не таргет
Нет. ansible_host - это адрес таргета, по которому подключается ансибл
Aleksey
{%- for host in groups[my_inventory_group] %}
вот так у человека и было, только не работало, а почему - выяснили выше
Terry
Халявный курс по #ansible, налетай!😅 https://www.thecloud.coach/ansible-crash-course
Павел П.
звучит как ссылка с вирусом
Павел П.
Добрый день. Пробегаюсь по серверам - name: Update repositories apt: update_cache: yes TASK [update_packages : Update repositories] changed: [s.ru] ok: [ot.me] changed: [sa.ru] не могу понять по какой логике вообще может быть статус таски ок а не changed?
DjinN
На сколько я знаю это, когда оно уже в нужном состояние
Павел П.
а если срок жизни кэша указать? по идее, если он меньше - обновления кеша не будет и вы получите ок
мне как раз нужно чтоб он был) Но это второе. Первое - понять почему ок а не changed. разве там не принудительно apt-get update делается? Как в документации и написано
Damir
Добрый день. Пробегаюсь по серверам - name: Update repositories apt: update_cache: yes TASK [update_packages : Update repositories] changed: [s.ru] ok: [ot.me] changed: [sa.ru] не могу понять по какой логике вообще может быть статус таски ок а не changed?
В исходниках, такое определение: update_cache: description: - Run the equivalent of C(apt-get update) before the operation. Can be run as part of the package installation or as a separate step. required: false default: no choices: [ "yes", "no" ]
Damir
Так что да, выполняется apt-get update
Damir
Там есть и про опцию cashe_valid_time
Damir
cache_valid_time: description: - Update the apt cache if its older than the I(cache_valid_time). This option is set in seconds. required: false default: 0
Павел П.
которая =0 по дефолту
Павел П.
или этот ноль может браться откуда-то из целевой системы?
Damir
В код можно посмотреть тут
Damir
https://github.com/ansible/ansible-modules-core/blob/devel/packaging/os/apt.py
Damir
или этот ноль может браться откуда-то из целевой системы?
update_cache = dict(default=False, aliases=['update-cache'], type='bool'), cache_valid_time = dict(type='int', default=0)
Павел П.
нет. в выводе-то остается ок
Damir
К примеру, для yum есть такой нюанс: Force yum to check if cache is out of date and redownload if needed. Has an effect only if state is present or latest.
Damir
Вполне может быть, что такое же поведение и у apt
Damir
нет. в выводе-то остается ок
У вас пакет в каком состоянии представлен present/latest?
Павел П.
У вас пакет в каком состоянии представлен present/latest?
пакеты ставятся дальше отдельными тасками. в этом таске только update_cache: yes
Nikita
Всем привет, а подскажите пожалуйста, как ansible заставить работать через socks5? Модуль uri к примеру.
Damir
В теории можно через ssh proxy прокинуть, через аргумент ansible_ssh_common_args
Nikita
Мне для модуль uri или telegram
Timur
Мне для модуль uri или telegram
Пока никак, насколько я могу судить по коду
Timur
Можете попробовать законтрибьютать
George
А ансибл плювать хотел на https_proxy системный ? Т.е. только command/shell остаётся ?
Timur
В том числе системный
Timur
Не поддерживается socks
[IPT] Dmitry
А ансибл плювать хотел на https_proxy системный ? Т.е. только command/shell остаётся ?
vars: proxy_env: http_proxy: "{{ SquidProxyURL }}" https_proxy: "{{ SquidProxyURL }}" я так делал
Sergey
А ансибл плювать хотел на https_proxy системный ? Т.е. только command/shell остаётся ?
https://docs.ansible.com/ansible/latest/user_guide/playbooks_environment.html#setting-the-environment-and-working-with-proxies
Vladislav 👻
а кто-нибудь парсил ответ от всяких /sys/*?
Vladislav 👻
или как это лучше сделать, когда надо проверить параметр, например: cat /sys/kernel/mm/transparent_hugepage/enabled [always] madvise never
Vladislav 👻
решил регуляркой 🙈
Timur
Что нужно проверить?
Vladislav 👻
как пример выше, надо проверить, включен ли thp и если нет, его надо будет включить, думал, может есть какой-то нормальный вариант, как это решить, кроме как cat делать через command и register
Vladislav 👻
на сколько я знаю, эти файлы не совсем "текстовые"
Timur
???
Vladislav 👻
ну это какая-то фигня для меня непонятная, которая может правиться банальным echo always > /sys/kernel/mm/transparent_hugepage/enabled
Ekaterina
на сколько я знаю, эти файлы не совсем "текстовые"
В линуксе все есть файл. Так что можно воспринимать их как файл.
Vladislav 👻
это да, но результат работы echo будет как я выше писал
Vladislav 👻
а не просто always
Ekaterina
Но вы же командой говорите: поставь статус always. Он и отвечает enabled.
Vladislav 👻
все правильно, но при этом, непонятно, как будет работать при этом тот же template/lineinfile/blockinfile
Ekaterina
Мне кажется надо почитать про эти конкретные свойства. Там не все тау просто внезапно может оказаться
George
Есть же модуль sysctl, который ставит в нужное значение