George
Мне тоже лень
Stan
почему при новой настройке ansibel, при запуске ansible -m ping all, ругается на ssh - host unreachable, даже если этот host это он сам ?
George
Лог ошибок дай, а то гадать можно вечно. Из очевидного - хосты не прописаны в known_hosts (не акцептован фингерпринт ссш)
Stan
Разобрался, сгенерировал ssh , и скопировал их на хост
Stan
Спасибо:)
username
Разобрался, сгенерировал ssh , и скопировал их на хост
https://docs.ansible.com/ansible/latest/inventory/implicit_localhost.html если не разберётесь, маякните , помогу правильно настроить
username
ansible_connection: local вот это ключевое
NS 🇷🇺
Всем привет, подскажите плиз. Можно как то select сделать по переменной пишу что-то типа "{{groups['all'] | select('match', '^my_var+’) | list }}" и получаю пустой список, если ставлю какое то определенное значение, то все хорошо. Задача получить список хостов соответствуюзих определенному условию
NS 🇷🇺
select('match', '^'~my_var~'.*')
огонь, спасибо. А где про эту магию читануть?
Lamobot
огонь, спасибо. А где про эту магию читануть?
https://jinja.palletsprojects.com/en/2.10.x/templates/#other-operators
Lamobot
В твоём варианте он название переменной подставляет match фильтру, а тебе нужно значение получить
Андрей
Всем привет, Добрые люди, помогите кто чем может) Есть питоновский скрипт который нужно отранить на Windows машине с повышенными привилегиями (run as administrator). Когда я запускаю от администратора cmd.exe на таргет машине и запускаю скрипт python script.py то все работает как надо. Но на ансибле казалось бы аналог не работает: win_command: python script.py become: yes become_method: runas become_user: "{{ ansible_facts.user_id }}"Пробовал и через win_shell и как говорится no luck
Sergey
user_id здесь вроде будет соответствовать пользователю, который использовался при сборе фактов.....
Stan
как написать playbook чтоб менялась строка в конфиг файле ( начинающаяся с Exec= ) ?
Андрей
Это он и есть. Даже если не выделываться и указать напрямую его имя то то же самое. Более того - если указать пользователя System, тоже нет
Stan
systemd
Maxim
lineinfile: dest: "/path/to/file" line: "Exec=..." regexp: "^Exec="
🦆Nikita
Как в include_task сделать импорт переменных? он почему-то не перезаписывает переменную "—extra-vars": - name: 14. Загрузка установки принтеров {{ inventory_hostname }} include_tasks: /etc/ansible/roles/print_install/tasks/print_install.yml vars: Vars: "{{ (lookup('file', '/etc/ansible/roles/win_backup/tmp/Users_{{ inventory_hostname }}.txt') | from_json).Printers }}" when: linux_connection is succeeded P.S. это скорее всего глобальная переменная, как можно правильно перезаписать?
Sergey
systemd
Systemd умеет в перекрытия конфигурации, не нужно делать странное.
Андрей
Что значит "не работает"? Выхлоп какой?
Скрипт вызывает cli определенного аппликейшина и используя его api настраивает аппликейшн как сервис, создавая этот самый сервис помимо всего прочего. Так вот, этого всего не происходит.
Alexander
Подскажите, как правильно создать плейбук (или раскидать по ролям): 2 task. Первый должен исполняться на localhost, второй на другом хосте по ssh
Андрей
А сам он вообще запускается?
да. если запустить его на машине без run as administrator то все будет как и при запуске с ансибла
Timur
да
Так не получится. У значений extra-vars самый высокий приоритет среди всех источников переменных
Dr. L.S.Dee
да. если запустить его на машине без run as administrator то все будет как и при запуске с ансибла
Ага, и только исходя из этого у вас есть некоторые основания полагать, что при "запуске с ансибла" runas не отрабатывает? Но это не точно. Там вообще тишина на выходе, что ли? А если подменить этот скрипт на другой, который просто запишет в файл или вернет взад имя пользователя, от которого он отработал? Чтоб уж точно убедиться, что дело в этом.
Андрей
Выхлоп какой?
changed: [192.168.7.39] => { "changed": true, "cmd": "python as_service.py", "delta": "0:00:00.437503", "end": "2019-08-19 08:24:08.807923", "rc": 0, "start": "2019-08-19 08:24:08.370420", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []сам скрипт: from pexpect import popen_spawn from pathlib import Path sil_cli = str(Path("sil/bin/sil.cmd")) sil = popen_spawn.PopenSpawn([sil_cli, "setup", "service", "create"]) sil.expect_exact("Enter the SIL Administrator password:", async_=True) sil.sendline("password") sil.expect("Please enter the hostname.username password:", async_=True) sil.sendline("password")
Timur
?
У вас там стоит ожидание ввода данных пользователем
Андрей
Timur
Т.е. скрипт запускается и запрашивает данные?
Андрей
Значит, проблема все же в скрипте и среде, в которой он исполняется.
То есть можно быть увереным что действительно скрипт был запущен с run as administrator?
Андрей
Т.е. скрипт запускается и запрашивает данные?
да. А именно пароли и когда он получает пароли то делает свое дело
Dr. L.S.Dee
То есть можно быть увереным что действительно скрипт был запущен с run as administrator?
Ну как бы да. На данном этапе не имеет значения, что именно за скрипт.
Timur
да. А именно пароли и когда он получает пароли то делает свое дело
Т.е. скрипт при запуске ансиблом нормально отрабатывает и запрашивает нужные данные, правильно?
Андрей
Ну как бы да. На данном этапе не имеет значения, что именно за скрипт.
просто не могу понять почему если этот же скрипт запустить на машине то все ок
Dr. L.S.Dee
Получить и сравнить переменные среды, допустим, при интерактивном runas и при запуске ансиблом...
Dr. L.S.Dee
Могут и отличаться где-то.
Dr. L.S.Dee
Где и откуда он запрашивает данные?
Dr. L.S.Dee
И кстати, может, подходящая готовая роль есть для этого сервиса? Вместо посредника в виде скрипта?
Андрей
Т.е. скрипт при запуске ансиблом нормально отрабатывает и запрашивает нужные данные, правильно?
к сожалению не уверен. в этом то и проблема. Там так странно написан этот cli что я не могу нормально увидеть логи того, что он пишет (если буду использовать logfile от pexpect). У меня на самом деле к себе вопрос - либо не запускается от администратора либо что-то происходит уже при запуске скрипта ансиблом, что я не могу предугадать
Dr. L.S.Dee
Далее. Создание и настройка экземпляра сервиса идут с теми же учетными данными? Это вин-пользователь, доменный причем, пользователь, от имени которого сервис будет создан? Просто в условиях винды привязывать сервисы к доменным учеткам правильнее, чем к локальным — на каждой системе своя.
Андрей
Далее. Создание и настройка экземпляра сервиса идут с теми же учетными данными? Это вин-пользователь, доменный причем, пользователь, от имени которого сервис будет создан? Просто в условиях винды привязывать сервисы к доменным учеткам правильнее, чем к локальным — на каждой системе своя.
настройка сервиса идет с данными другого пользователя (который не должен быть администратором) пользователь локальный, не доменный. второй пароль который нужен cli и есть пароль того пользователя на уровне домена я не могу ничего делать. такие тут правила и я не смогу никак на это повлиять
Dr. L.S.Dee
Это плохо. Второе, я имею в виду. Первое - so-so. Хотя это оффтопик здесь, но тогда я бы поделил задачку. Раз уж пользователь, настраивающий сервис, не должен иметь прав на его создание (и удаление?).
Андрей
Это плохо. Второе, я имею в виду. Первое - so-so. Хотя это оффтопик здесь, но тогда я бы поделил задачку. Раз уж пользователь, настраивающий сервис, не должен иметь прав на его создание (и удаление?).
тут вообще все очень забавно. В идеале я этим пользователем и должен был бы запустить cli команду на настройку аппликейшина как сервиса. Только я тоже должен был бы запустить ее run as administrator. я же все делаю реальным локальным администратором
Sergey
Согласен. Так данные то и вводятся
А что значит "вводятся"? Интерактивные удалённые скрипты работать не обязаны. Скрипт нужно переписать нормально - чтобы с хоста-контроллера всё нужное заливалось.
Dr. L.S.Dee
Т.е., раз: создание сервиса от имени наделенного таким полномочием пользователя. Здесь, скорее всего, даже передавать креды в скрипте не нужно, в нормальном случае кто создает, того и реквизиты. Два: настройка сервиса. Там, в общем-то, лучше б готовый конфиг подсунуть.
Dr. L.S.Dee
** "В нормальном случае" - это я про пош. В Питоне может быть по-другому, да.
Dr. L.S.Dee
*** Но питон на винде, ПМСМ, это примерно как пош на линуксах. Не очень понятно, какие такие задачи он решает.
Dr. L.S.Dee
**** А вот наоборот - другое дело. Линукс без питона, как и винду без поша, можно встретить только в очень грустных и экзотических случаях. ПМСМ опять же.
Андрей
*** Но питон на винде, ПМСМ, это примерно как пош на линуксах. Не очень понятно, какие такие задачи он решает.
это я уже его "нахлобучил". мне каким-то образом надо решить задачу как вводить пароли. Это все что пришло в голову. Cli же так и был задуман чтоб вводить пароль вручную
Dr. L.S.Dee
Кстати, в поше пароль даже там, где его ввод предусмотрен, открытым текстом не передается, там SecureString как правило. Или $Credentials как объект. А в питоне такой засады быть не может?
Андрей
А что значит "вводятся"? Интерактивные удалённые скрипты работать не обязаны. Скрипт нужно переписать нормально - чтобы с хоста-контроллера всё нужное заливалось.
а почему не обязаны? не придираюсь, реально не знаю) я ж так понимаю, что когда я делаю win_command:... то это примерно то же самое если бы я зашел и запустил сам?
Dr. L.S.Dee
я бы думал на это если бы этот же скрипт нормально не отрабатывал с машины. текст скрипта 1 в 1
А вот не факт. Интерактивная сессия от удаленной немного отличается. И обе отличаются от входа в качестве пакетного задания/службы.
Dr. L.S.Dee
Глупый вопрос, но: винда английская? Кириллицы нигде нет?
Dr. L.S.Dee
А то я на прошлой неделе вон чего нашел (хоть это и оффтопик).
Dr. L.S.Dee
Как-то так, короче.
Андрей
Как-то так, короче.
так бывает когда сначала была русская потом поставили языковой пакет и поменяли дефолтный язык
Sergey
а почему не обязаны? не придираюсь, реально не знаю) я ж так понимаю, что когда я делаю win_command:... то это примерно то же самое если бы я зашел и запустил сам?
Нет, не то же самое. На виндовую систему закидывается PoSH-скрипт, который содержит команду запуска чего-то там из параметров.
Sergey
И вообще: "Use the source, Luke!"
Sergey
Sergey
https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/windows/win_command.ps1