John
так я ж не спорю) просто поддерживаю диалог))
George
Дальше варианты. Кстати, за решение заплатишь ?
John
конечно! {{ item }} (не вспоминаем про силу комьюнити и опенсорсы и блаблабла))) with_items: - "{{ тут я лукавлю }}" :D
Timur
Который при нормальном подходе не нужны
Timur
И в нормальном виде задача решается более эффективными способами
Ilia
критикуешь - предлагай! :D
предполагаю, что авторизацию по ключам вам уже предлагали
John
так если авторизацию по ключам есть и работает, а нужно задать пароль. То что?
Timur
так если авторизацию по ключам есть и работает, а нужно задать пароль. То что?
Если авторизация по ключам есть, но нужно задавать и вводить пароль, то ты что-то сделал неправильно
John
не) вводить только если в консоль цепляешься) по ссх - ключи есть)
George
У нас вообще локально только рутом заходили. И то. Пароль на каждом сервере был свой
George
И хранился на листочке у главного админа в сейфе.
John
ну например сетевик-гомосек взял, и изменил сетку которая подается в машину , надо изменить настройки сети и внутри машины, для этого нужно знать пароль, потому что в консоль ключик не применишь))
George
ну например сетевик-гомосек взял, и изменил сетку которая подается в машину , надо изменить настройки сети и внутри машины, для этого нужно знать пароль, потому что в консоль ключик не применишь))
Понимаешь, задача становится симметричной. Пройти по 30+ серверов. Поменять пароль рута. А потом все сохранить в csv в табличку hostname == pass
George
Да и пароль рута при физическом доступе сбросить... Пять минут
John
Звучит как какой-то форс-мажор, который случается раз в несколько лет
я вам искренне завидую) У вас наверно сетевик гетеро))
George
Или у вас ещё шифрованная файловая система ?
Timur
В случае такого форс-мажора можно и сбросить нафиг
John
5 минут, согласен. Но ведь можно заданее быть готовым ко всему? не?
George
А понимаешь
George
В момент Чё твой пароль не подойдет
Timur
я вам искренне завидую) У вас наверно сетевик гетеро))
При нормально организованных процессах сексуальная ориентация сетевиков не играет никакой роли
Timur
Даже если сетью управляет некропедозоофил
Pavel
Потому что часто ансибл пытаются использовать для создания костылей
Ну честно говоря если брать логику,ансибл позиционирует себя как система управления конфигурацией,собственно как и puppet,и управление учётными записями входит в управление конфигурацией серверов,а вот насчёт best practice где ты выше кидал,ты прав,я с тобой согласен.Просто на одном из мест работы паппетом решались задачи раскидывания учётных записей с ключами по большим группам серверов,а с виндой просто такого не припомню.Потому что как выше сказали,нативное решение и руление через AD
John
Что-бы пароль не прописывался на каждом проходе у хеша должен быть одинаковый salt {{ 'secretpassword'|password_hash('sha512', 65534|random(seed=inventory_hostname)|string) }}
отличная тема! А если кавычки вокруг secretpassword убрать, то это будет уже переменная, которую можно брать из другого места. Но в целом задача решается! Спасибо) тут еще один вариант, но какой-то вырвиглазный :) https://www.redpill-linpro.com/sysadvent/2017/12/02/ansible-change-passwords.html
Artur
есть скрипт, в какой то момент выполнения он потребует ввода из консоли. как можн ansible'ом "ввести" данные ?
Artur
эм. эт как ?
Artur
зарегал результат, а дальше ?
Павел П.
Вечер добрый. Вопрос про try-catch-except-pass, или нет) Есть набор систем, где сервис стартует либо через init.d, либо супервизором. Как правильно определять как его, например, рестартовать? Устанавливать факт и потом when, или есть в ямле синтаксис типа try module supervisor - catch exceptin - pass - try module service ?
Aleksey
зарегал результат, а дальше ?
- name: "Run artisan command at remote server" command: php /var/www/{{ stage_environment }}/artisan {{ artisan_arguments }} register: artisan_stdout - name: "Show artisan result" debug: msg: "{{ artisan_stdout.stdout_lines }}"
George
Есть же if в ансибле
Vladislav 👻
точнее when
George
Типа if supervisor == есть - один блок
George
И так далее
Artur
https://docs.ansible.com/ansible/latest/user_guide/playbooks_prompts.html
эт немного не то. мне не при запуске плейбука над спрашивать. а уже в запущеном, когда выполняется shell скрипт
George
точнее when
Ну, я на высоком уровне объясню
Vladislav 👻
задача из разряда, when: ansible_os_family == ...
Павел П.
ну то есть явная проверка -> действие. нет как в питоне попробуй - не получится - обработай по-иному
Vladislav 👻
даже в питоне, не говоря про другие языки, перехват ошибок - это не тру практика
Vladislav 👻
проверка ошибок != перехват
Павел П.
ок. Спасибо)
Vladislav 👻
а в ансибле, с чистой совестью можете использовать when и пускай вас не смущает skipped у таска
Artur
https://docs.ansible.com/ansible/2.7/modules/pause_module.html#examples
при помощи параметра echo можно "закинуть" ответ в shell, он это схавает и передаст скрипту, который выполняется сейчас ?
George
Но это мысли вслух )
Artur
не ахти варик. скрипт не мой. но нужен для выполнения роли
George
Просто если нужно писать с stdin, то явно что-то не так )))
Artur
склояюсь к "патчу" это скрипта. дабы ничего не спрашивал
Artur
но самый простой способ эт конешн из stdin ему ответить
George
@arturprosto поясни, а как ты определишь ЧТО ждёт скрипт
George
expect как бы для этого и предназначен, чтобы интерактивные программы в скрипты заворачивать
Artur
эм. представь что ты запустил apt без -y. видно что он ждёт
Ivan
ну то есть явная проверка -> действие. нет как в питоне попробуй - не получится - обработай по-иному
Для чистого try-catch-finally кажется подходит вот это https://docs.ansible.com/ansible/latest/user_guide/playbooks_blocks.html#id2
Artur
это пример
Artur
точнее ответ на то, как я понял, что он ждёт чё то из stdin
Artur
запускаю то не apt
George
запускаю то не apt
Ну, просто скормить поток в stdin херовая идея, сам понимаешт
George
А вдруг apt не y/n спрашивает, а нужно ли конфиг файлы переписать