The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Как в Ansible выполнить локальную команду для хоста оркестратор"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Виртуализация / Linux)
Изначальное сообщение [ Отслеживать ]

"Как в Ansible выполнить локальную команду для хоста оркестратор"  +/
Сообщение от xintrea (ok), 27-Ноя-19, 13:57 
Есть хост, на котором я запускаю ansible.

Я хочу написать задачу в плейбуке, которая бы запускала команду локально, без подключения через SSH.

Говоря точнее, мне нужно сделать задачу, которая запускала бы виртуальные машины VirtualBox. И сделать это нужно в текущей сессии пользователя, под которым и запускается команда ansible-playbook.

Если делать через модуль local_action, вот так:


local_action: command cmd='cd {{vm_images_path}} ; cd ./arm1/ ; VBoxManage startvm "Debain Linux - arm1"'

то ansible все равно пытается подсоединиться через ssh, и выполнить команду в другой сессии. А мне надо выполнить команду в текущей сессии, чтобы я видел окна запущенных виртуальных машин.

Как это сделать?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Как в Ansible выполнить локальную команду для хоста оркестратор"  +/
Сообщение от Licha Morada (ok), 27-Ноя-19, 23:07 
> Есть хост, на котором я запускаю ansible.
> Я хочу написать задачу в плейбуке, которая бы запускала команду локально, без
> подключения через SSH.

Посмотрите https://lmgtfy.com/?q=run+ansible+playbook+locally+without+ssh

> Говоря точнее, мне нужно сделать задачу, которая запускала бы виртуальные машины VirtualBox.
> И сделать это нужно в текущей сессии пользователя, под которым и
> запускается команда ansible-playbook.
> ...
> А мне надо выполнить команду в текущей сессии, чтобы
> я видел окна запущенных виртуальных машин.

Под сессией, очевидно, имеется в виду графический десктоп.
Обычно народ мучается, как бы сделать наоборот, запустить виртуалку не показывая её окно...

Как выполнить команду в текущей сессии я вам не скажу, но позвольте предложить несколько советов.

Попрактикуйтесь на кошках. Вместо того, чтобы сразу вызывать VBoxManage из ansible, зовите какой-нибудь calc или xterm, таким образом ваши тесты будут гораздо легче и быстрее. Когда добьётесь необходимого поведения, можно будет просто изменить команду на что-то полезное.

Контролировать, на каком экране показывается графическое приложение, можно переменными окружения, например DISPLAY. Окружение можно задать для ansible, конкретно для команды, или в скрипте который будет запускать плейбук. Погуглите примеры, как люди вызывают графически еприложения из cron.

Прикиньте, нужно ли вам на самом деле "выполнять команду в текущей сессии" для того чтобы "видеть окна запущенных виртуальных машин". Может оказаться проще запускать виртуалку без головы (headless) и общаться с ней по RDP который VirtualBox же и предоставляет.

Вообще, headless режим позволяет показывать и скрывать окно виртуалки по желанию, кнопками Show и опцией Detach GUI. Но на них надо жмакать мышкой.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Как в Ansible выполнить локальную команду для хоста оркестратор"  +/
Сообщение от sovicUA (ok), 02-Дек-19, 11:02 
> Есть хост, на котором я запускаю ansible.
> Я хочу написать задачу в плейбуке, которая бы запускала команду локально, без
> подключения через SSH.
> Как это сделать?

---
- name: Run local tasks
  hosts: 127.0.0.1
  connection: local
  gather_facts: no
  vars:
    ....
  tasks:
    - name: Local command
      ...

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2019 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру