Dmitry
Приветики. Подскажите как лучше сделать. Есть роль А, которая должна выполняться для группы хостов А. Ну и Б для Б. Обе роли зависят от С.
Хочется, что бы сначала роль С прошлась по А+Б группам, а потом уже пошли роли А и Б.
inqfen
Ну так и напиши, в чем проблема
Dmitry
Т.е. понятно, что я могу разорвать зависимость в ролях, и тупо прописать три таска
Dmitry
Но если не разрывать - получается, что играет сначала C и А на группе А, а потом С и Б на группе Б
inqfen
Вот ты сам сказал что какая последовательность тебе нужна
inqfen
Так и опиши это явно, ансибл не угадает же за тебя
inqfen
Почему в чат ты написал 3 таска словами, а в плейбук стесняешься?
Aleksey
inqfen
inqfen
Тебе это не надо - тогда убери
Dmitry
смотри, кейс, когдя для одной группы указанны две роли зависящие от третьей - ансибл прекрасно отрабатывает, не повторяя третью
Dmitry
т.е. если я напишу
- name: "test A"
hosts:
- a
- b
roles:
- { role: a }
- { role: b }
где и а и b зависят от c, то будет и исполненено c-a-b
собственно что-то такое хочется, но что бы a для a, b для b
попробовал include_role + when ... не работает, c два раза исполняется
Dmitry
собственно можно свести к вопросу - как в синтаксисе с include_role обеспечить старое поведение allow_duplicates: false
Dmitry
походу это баг, который тянется пару лет точно...
Артём
Dmitry
#Rλatan
Чем меньше закадровой логики тем легче это колесо крутить когда оно выростет до размера 100+ролей
Dmitry
ну там не вырастет... максимум 3-4 роли будет
Dmitry
ну оно в общем должно работать, и даже allow_duplicates опция у include_role намекает
Dmitry
но не работает... но в общем убрал зависимость и явно ее в плейбуке поставил, да
#Rλatan
как я вижу:
[prod]
adhoc:
- C
- A
- B
include_role: "{{ item }}"
loop: "{{ adhoc }}
#Rλatan
Вам побороть сломанный инструмент или рабту выполнить нужно 😊?
Dmitry
не, ну еще понять нужно было, что он сломан, а не у меня что-то не оттуда
как-то так и сделал, да...
#Rλatan
ну если платят по часам то дело ваше
Dmitry
просто всегда остаётся риск, что кто-то придет и заюзает А без С.. видимо нужно будет проверку какую-нибудь впилить
#Rλatan
Выбирайте деларативный подход:
- сделать1
- сделать 2
- слелать N
#Rλatan
Чеки делайте сохраняя пусотой файл
#Rλatan
И добавте в каждую роль - если нет то фейл
#Rλatan
Там пойди уследи за всеми
Dmitry
ну думал факт проставить
#Rλatan
Ну или да финальный факт в роли С
потом проверитив А и Б
Ivan
Aleksey
ого. разошлись последнее время
Victor
Victor
А не, даже реже, чем два процента. Связано с тем что часть пакетов с прикладным софтом укатились в третий питон, ну или работало в нем нормально. Но систем-вайд идет второй. Мне конкретно потребовалось для докер-композа. Кошернее было бы сделать через venv, но в него тоже еще прыгать надо, а на машине ничего другого не крутится.
Kirill
Доброе утро всем)
Пытаюсь прогнать ansible playblook в gitlab ci, но получаю ошибку It is required that your private key files are NOT accessible by others.\r\nThis private key will be ignored.
id_rsa ключ я взял с remote сервака на котором хочу выполнять скрипты, кинул в gitlab variables и в пайплайне кидаю его в ~/.ssh/id_rsa с chmod 600
Kirill
в чем может быть проблема? 🙂
Victor
Kirill
или мне нужно в пайплайне генерировать ключ, кидать его на ремоут и добавлять в authorized_keys?
Victor
Kirill
Ну есть vps. Я логинюсь по ssh и генерю там ключ, который использую для доступа ansible на ssh. Сам ansible запускаю в пайплайне в докер контейнере
Victor
Victor
Ivan
Dmitry
Kirill
Я вешаю права конкретно на id_rsa
Kirill
Сейчас попробую
Victor
Ivgenich
chmod 700 ~/.ssh
chmod 644 ~/.ssh/authorized_keys
chmod 644 ~/.ssh/known_hosts
chmod 644 ~/.ssh/config
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
Alexey
Victor
Ну знач не вешаются у тебя права.
Radik
777!
Victor
777!
долой аутентификацию!
Dmitry
700 на ~/.ssh, 600 на всё внутри ~/.ssh
Andor
белым по чёрному пишет, в чём проблема
Kirill
Maksim
Retries и Delay только с определенынми модулями работают?
- name: activate daemon for elasticsearch
service:
name: elasticsearch
state: started
enabled: yes
retries: 3
delay: 15
Maksim
не отрабатывают здесь
Victor
Ну и пример
- shell: /usr/bin/foo
register: result
until: result.stdout.find("all systems go") != -1
retries: 5
delay: 10
Victor
Ну и кстати, стековерфлоу утверждает, что можно сделать так ssh-add - <<< "${SSH_PRIVATE_KEY}"
#Rλatan
Для пользователей Ansible+Vagrant на Windows
Если способ без samba расшарить папка из VM в хост?
UglyKoyote
если вбгест аддон установлен - через шаренные каталоги
#Rλatan
не из хоста в ВМ а наоборот, что бы можно в хост Windows примонтировать сетевой диск
Andor
#Rλatan
Сейчас ставится Samba в ВМ для этих целей
UglyKoyote
Никита
Could not set property: Interactive authentication required.
ставлю куб кубспреем
#Rλatan
Никита
--ask-become-pass --ask-pass ввожу
#Rλatan
Kirill
в общем чёт как не пытаюсь всё равно Make sure this host can be reached over ssh: key_load_public: invalid format\r\nWarning: Permanently added ‘….’ (ECDSA) to the list of known hosts.\r\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\n@ WARNING: UNPROTECTED PRIVATE KEY FILE! @\r\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\nPermissions 0755 for '/root/.ssh/id_rsa' are too open.\r\nIt is required that your private key files are NOT accessible by others.\r\nThis private key will be ignored.\r\nLoad key \"/root/.ssh/id_rsa\": bad permissions\r\nPermission denied (publickey,password).\r\n", "unreachable": true}