Alexander
Вряд ли в нём проблема
Alexander
chown failed
Возможно я создаю папку не по тем, под кем запускается плейбук
Sergey
become: true
решает
Sergey
Нет. Отличные от uid/gid вызывающего процесса.
Sergey
Да. А они, в свою очередь, наследуют uid/gid процесса Ansible на целевом хосте (если нет каких-то директив на эту тему)
Alexander
Чуть понятнее стало, спасибо
Alexander
Ну с этим понятно, хочется очень точно проблему найти
Alexander
Так как возможно не дадут использовать become
Sergey
Куда точнее-то? Не хватает полномочий целевому пользвателю. А отказываться от become означает отказаться от вот этих всех фишек, которые требуют прав рутовых.
Alexander
Sergey
Эм......
become: true
ставится в конкретном плее, он не будет автоматически распространяться на все плеи плейбука.
Alexander
Sergey
Скорее, где она вызывается:
- hosts: <hostgroup>
become: true
roles:
- role: "1"
var1: "val1"
- role: "2"
Alexander
О, это еще лучше, отлично, спасибо большое, буду пробовать
Alexander
umask?
umask такой, какой и должен быть
Alexander
become не нужен совсем и его не дадут
Alexander
То есть руками я могу сделать со своей учеткой все что нужно
Alexander
Плейбуком - происходит ошибка
Alexander
Могут ли быть косяки в самом ансибле? 2.8.2
Anton
Hosts file выглядит таким образом
[master]
192.168.33.50 ansible_ssh_user=root ansible_ssh_pass=123
[node]
192.168.33.60 ansible_ssh_user=root ansible_ssh_pass=123
Могу ли я как то вытянуть IP master если сценарий выполняется в node ??
Anton
- debug: var=hostvars[inventory_hostname]
Вот так удается получить, но не соображу дальше)
Anonymous
Ребят, запускаю ansible-playbook в docker контейнере. На localhost выполняет нормально, на remote host выдает ошибку argument must be an int, or have a fileno() method. сам ssh user@ip выполняет нормально.
StrictHostKeyChecking no
host_key_checking = False
поставил. Никто не сталкивался?
Alexander
Anton
как это ? я запускаю и мне удается вытянуть весь inventory_hostname
Anton
- debug: var=hostvars[inventory_hostname] возвращает текст. дальше чё то не соображу
https://pastebin.com/xmVVyMsj
Anton
вот. там есть master которого ип вытащить нужно
Alexander
Да. Он вытягивается с той ноды, где в данный момент исполняется плейбук
Anton
вот только я не знаю как правильно этосделать
Alexander
Мастер - это хост, с которого идёт управление?
Alexander
Потому как по инвентори, я вижу, что нет
Alexander
Чтобы получить информацию о хосте (ipv4), нужно чтобы на том хосте запускался плейбук
Alexander
Ansible-playbook play.yml ты где запускаешь?
Anton
на хосте своем
Anton
запускаю его и он начинает устанавливать пакеты в NODE
Anton
и тут мне нужно что бы в NODE я смог получить ип MASTER который в моем hosts файле
George
Anonymous
Anton
дебагом он выводит его и не только его. ещё и Gitlab есть который в дауне уже давно
Alexander
Это только если передавать этот файл на NODE
Alexander
Иван
Всем привет. Кто-нибудь управляет индексами, теплейтами эластка с помощью ansbile? Какие модули используете или не используете? Что б прям с идемпотентностью все норм было. Может какие-то лайфхаки?
George
я предложил вариант - сформировать vars, в них засунуть переменную типа master_ip и присвоить ее джинджей к айпи хоста
George
потом в плейбуке эту переменную вычитать
George
не знаю насколько это ансиблёве или можно прямо в плейбуке сделать )
Alexander
Разбить на роли если
Alexander
И в плейбуке написать что вот эту именно роль по получению адреса исполнять для мастера
Anton
да ну. городить роль что бы получить айпи... проще переменную объявить
George
поддержу
George
но с переменной это хотя бы.... типа .... красиво
Anton
ну да) просто почему я заморачиваюсь ) айпи то есть, зачем его ещё раз объявлять то... ну такое )))
George
потому что ОДИН УЗЕЛ ПРО ДРУГОЙ УЗЕЛ НИЧЕГО НЕ ЗНАЕТ
George
это тебе не паппет, который компилит манифесты, блин
Anton
да я понял. но вон я показал что дебаг с ноды знает об айпи мастера. он его просто с инвентори смотрит. вот мне его и вытянуть нужно красиво а не всю кашу
Anonymous
George
George
в контексте ансибла, который на хосте
Anton
в НОДЕ
Anton
я же говорил.... щас расспишу
Anton
192.168.33.60 айпи ноды
192.168.33.50 айпи мастера
я запускаю плейбук.... он идет на 192.168.33.60 и делает там шум... и вот мне нужно получить айпи мастера который 192.168.33.50. я запускаю в ноде на айпи 192.168.33.60 - debug: var=hostvars[inventory_hostname] и получаю https://pastebin.com/xmVVyMsj О БОГИ я вижу там айпи мастера который мне нужно получить. Вопрос. КАК его вытянуть.
George
ща
George
ты пробовал lookup на groups['master'] сделать?
George
в плейбуке?
George
ну или типа
- name: ...
set_fact:
v1: "{{ hostvars[inventory_hostname]['groups']['master'] }}"
- name: ...
debug:
msg: "{{ v1 }}"
Anton
щас буду у компа и попробую. спасибо
George
у меня просто фантазии не хватает. В теории раз ты вывел - это простой json объект, следовательно, ты можешь оттуда вычленять любые элементы его
Alexander
Alexander
Права он выставлял для того юзера, имя которого указано в параметрах
Alexander
И на это имя мне сказали, что оно должно быть статично
Alexander
Как оказалось, нет. Должно быть имя юзера, запускающего плейбук
Anton
Anton
ok: [192.168.33.60] => {
"msg": [
"192.168.33.50"
]
}
как теперь правильно заюзать stdout что бы в переменной был только лишь ип ? это возможно ?
Alexander
grep ))
Anton
в переменной v1 находится [192.168.33.50] а мне нужен строго ип