Huan
fatal: [host1]: FAILED! => {
"changed": false
}
MSG:
ValueError: u'host1' is not in list
Huan
в hosts:
[kafka]
host1 ansible_host=192.168.1.1
host2 ansible_host=192.168.1.2
host3 ansible_host=192.168.1.3
Nklya
Если ты пилишь роль для кафки подсмотри просто как это сделано в готовых ролях, может там уже все придумали за тебя
Huan
спасибо погуглю
Huan
{{ groups.somegroup.index(inventory_hostname) }} - так заработало. правда нумерация с 0. возможно ли как-то указать нумерацию с 1?
Huan
есть еще такой вариант {{ play_hosts.index(inventory_hostname) }}
Joe
Подскажите, как сделать, чтобы при установке еще создавался отдельно фаил лога pip install -r /home/jenkins/app/requirements.txt --log /home/jenkins/app/requirements-install.log
======
- name: install requirements--log
pip:
virtualenv_python: python2.7
requirements: /home/jenkins/app/requirements.txt
virtualenv: /home/jenkins/app/venv
virtualenv_site_packages: yes
Huan
подскажите как логи ансибла на клиентах писать в отдельный лог?
Timur
Timur
http://docs.ansible.com/ansible/latest/modules/pip_module.html
Timur
не за что, документация к модулям творит чудеса :)
wndrfl
Dorian
gluster=[ {"/dev/vdb": "/data/brick@z_01" }, { "/dev/vdb": "/data/brick@z_02"} ]
Парни, знат кто как правильно со списком словарей работать?
Dorian
with_list не катит, with_dict тоже
Sergey
Sergey
в общем случае тебе сюда - https://docs.ansible.com/ansible/2.4/playbooks_loops.html#looping-over-subelements
Dorian
Уже читал, но не въехал пока
Dorian
lookup('dict', item).key может ?
Dorian
Нет, не поможет
shadow
Кто знает как переписать, чтобы работало?
- hosts: host1
tasks:
- name: check if package is installed
package:
name: mypackage
state: present
check_mode: true
register: mypackage_check
- name: run script if package installed
shell: myscript.sh
when: not mypackage_check.changed
Выдает: FAILED! => {"changed": false, "msg": "No package matching 'mypackage' found available, installed or updated", "rc": 126, "results": ["No package matching 'mypackage' found available, installed or updated"]}
shadow
уж очень хочется платформонезависимую проверку на установленную апликацию
Vadim
when: mypackage_check.rc == 0
shadow
shadow
в первый таск чтоли?
shadow
выбивает именно на первом таске
Huan
подскажите как заюзать переменные в шаблоне:
programm:
limits:
- limit_type: soft
limit_item: nofile
value: 50000
- limit_type: hard
limit_item: nofile
value: 50000
{{ item.limits.limit_type }} {{ item.limits.limit_item }} {{ item.limits.value }} не работает ((
shadow
тогда перепиши на failed_when: false, например
благодарю. Вот рабочий вариант:
- hosts: host1
tasks:
- name: check if package is installed
package:
name: mypackage
state: present
check_mode: true
register: mypackage_check
failed_when: false
# ignore_errors: yes
- name: run script if package is not installed
shell: myscript.sh
# when: not mypackage_check.changed
when: mypackage_check.rc > 1
Vadim
rc == 1 не проверяется
Timur
shadow
я новичек, но просто охутореваю от того, что такие жескачи приходится вытворять для таких элементарных вещей :)
shadow
yum конечно прекрасен, но у меня *.sh инсталятор :)
Nklya
странным задачам - странные решения
Vadim
а что делать, раз не хотите sh инсталлятор упаковывать
Vadim
https://docs.fedoraproject.org/quick-docs/en-US/creating-rpm-packages.html
shadow
shadow
так что продолжаю городить...
Vadim
- Так вы что, за меня есть будете?
- АГА
Nklya
ну можно еще из sh выковыривать рпм и ставить
Nklya
я такого давно не видел, но в 2000 это была популярная тема для всякого энтерпрайзного говна имхо
shadow
Это если кто уже забыл старый добрый Likewise... или недобрый :)
Roman
Ну вероятно это для того чтоб можно было сделать
wget distib.sh
sh distib.sh
...
PROFIT
Ievgen
это изврат! ибо они сами имеют внутри rpm :)
разбери этот rpm.sh посмотри что он делает, выброси ненужное, нужное запихни в свoй rpm например в депенды пропиши те рпм которые там в скрипте и вуаля ну и можно еще для того рпм спек написать так чтобы это все автоматом происходило при пересборке
Ievgen
зачем следовать говнопути
Ievgen
заглянул я в него:
1 #!/bin/sh
2 # This script was generated using Makeself 2.1.4
говно какое то makeself - Make self-extractable archives on Unix
Ievgen
зачем оно непонятно
shadow
к сожалению поддерживать тогда мои не смогут ибо уровень низкий, это сложнее, чем обезьянкам просто ложить файло при обновлении ручками и отредактировать пару строчек :(
Ievgen
а что поддерживать если spec написан rpmbuild -хуомуо cool.spec
Ievgen
?
Ivan
зачем оно непонятно
Чтобы «ставить одной командой» curl -Lkfs https://github.com.../url | bash -s
Ну и разрабам не надо заморачиваться поднимать свой репо или заботиться о включении в репозитории дистрибутивов.
Vadim
Ievgen
https://packagecloud.io/tarantool/1_10
Ievgen
вот тут это нормальная реализация
Ievgen
а там говно
Ievgen
curl -s https://packagecloud.io/install/repositories/tarantool/1_10/script.rpm.sh | sudo bash
Ievgen
чем это сложнее чем curl -Lkfs https://github.com.../url | bash -s ?
Ievgen
при том что все пакетировано и нет никаких артефактов?
Ievgen
странных с которыми потом приходится трахаться
Ievgen
я смотрю что в rpm.sh ничего ценного корме распаковки кстати
Nklya
Бить надо не разрабов, а всех
Ievgen
что то есть в install.sh который из него получается
Nklya
В тарантуле кстати есть нормальные деб и рпм пакеты
Ievgen
есть, надо было просто свежак
Ievgen
@zl0tel загляни в install.sh там походу половина это вода под другие системы типа солярки итд
shadow
угу, в кое веки руки добрались до ансибла, а вы меня заставляете делать все, но только не ансибление. У меня более глобальная идея - переписать все с папета на ансибл и как можно быстрее :)
Vadim
Vadim
Кодют тут и кодют
Nklya
shadow
дык надо же все сразу и желательно вчера