Как запустить и получить доступ к сеансу byobu на виртуальной машине через ANSIBLE PlayBook? - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь запустить именованный сеанс byobu на виртуальной машине с помощью ansible playbook с помощью команд byobu. Сеанс действительно запускается, но в фоновом режиме, т.е. сеанс и все его окна / задачи отображаются, когда я запускаю команду _ps -aux_, но когда я пытаюсь подключиться к этому сеансу (testByobu) из виртуальной машины с помощью _byobu attach-session -t testByobu_, он говорит не может найти сеанс testByobu , аналогично команда _byobu list-session_ говорит

сервер не работает на /tmp/tmux-100/default*.

VM --- VirtualBox VM с Ubuntu 18.04.2 LTS --- Byobu версия 5.125 tmux 2.6

Локальная система --- Ubuntu 18.04.2 LTS --- ansible 2.8.0 файл конфигурации = /etc/ansible/ansible.cfg настроенный путь поиска модулей = [u '/ home / emumba / .ansible / plugins / modules', u '/ usr / share / ansible / plugins / modules'] расположение модуля ansible python = /usr/lib/python2.7/dist-packages/ansible расположение исполняемого файла = / usr / bin / ansible версия Python = 2.7.15rc1 (по умолчанию, 12 ноября 2018 г., 14:31:15) [GCC 7.3.0]

Когда я пытаюсь создать сеанс с тем же именем, т. Е. testByobu снова с ANSIBLE playbook, ошибка

ЗАДАНИЕ [начать сеанс byobu] ************************************************** ************************************************** *********************** фатально: [192.168.2.218]: СБОЙ! => {"изменено": правда, "cmd": "быобу new-session -d -s testByobu "," delta ":" 0: 00: 00.046348 "," end ": "2019-05-27 12: 26: 15.832584", "msg": "ненулевой код возврата", "rc": 1, "start": "2019-05-27 12: 26: 15.786236", "stderr": "duplicate session: testByobu "," stderr_lines ": [" дублирующая сессия: testByobu "], "stdout": "", "stdout_lines": []}

происходит, поскольку обнаруживает, что сеанс уже существует. Но когда я делаю этот же сеанс (testByoby) непосредственно на виртуальной машине, он создается успешно. И команда ps -aux на виртуальной машине показывает обе сессии с одинаковыми именами, а окна, созданные мной для сессии, созданной с помощью playbook, также отображаются в выходных данных. Но выполнение команды byobu list-session показывает только один сеанс, который я создал непосредственно на виртуальной машине.

**output of the _ps -aux_ command:**

USER    PID %CPU %MEM   VSZ   RSS TTY   STAT START   TIME COMMAND
osama   3374  0.0  0.1  37284  3740 ?       Ss   12:27   0:00 tmux -u -2 -f /usr/share/byobu/profiles/tmuxrc new-session -d -s testByobu
osama   3378  0.0  0.2  29896  5080 pts/6   Ss+  12:27   0:00 /bin/bash
root    4087  0.0  0.0      0   0 ?     I   12:31   0:00 [kworker/u2:1-ev]
root    4123  0.0  0.0      0   0 ?     I   12:36   0:00 [kworker/0:2]
root    4126  0.0  0.3 110076  7280 ?       Ss   12:36   0:00 sshd: osama [priv]
osama   4190  0.2  0.2 110556  5288 ?       S   12:36   0:00 sshd: osama@notty
root    4275  0.0  0.1  37276  3652 ?       Ss   12:36   0:00 tmux -u -2 -f /usr/share/byobu/profiles/tmuxrc new-session -d -s testByobu
root    4278  0.0  0.1  28908  4040 pts/3   Ss+  12:36   0:00 /bin/bash
root    4403  0.0  0.1  28908  3852 pts/2   Ss   12:36   0:00 /bin/bash
root    4441  0.0  0.2  39760  4196 pts/2   S+   12:36   0:00 vi
root    4492  0.0  0.1  28908  3948 pts/4   Ss+  12:36   0:00 /bin/bash
root    4581  0.0  0.1  28908  3892 pts/5   Ss   12:36   0:00 /bin/bash
root    4619  0.0  0.0  23828  1076 pts/5   S+   12:36   0:00 ping 8.8.8.8
osama   4641  0.0  0.1  47100  3716 pts/0   R+   12:37   0:00 ps -aux

пробовал наоборот Если я сначала выполняю сеанс на виртуальной машине, а затем запускаю книгу воспроизведения, чтобы создать окна этого сеанса, она снова сталкивается с ошибкой

ЗАДАЧА [задание 1] ************************************************** ************************************************** ************************************ фатально: [192.168.2.218]: СБОЙ! => {"изменено": правда, "cmd": "быобу ключи отправки -t testByobu: 0 'vim' 'C-m' "," delta ":" 0: 00: 00.057772 ", "end": "2019-05-27 12: 30: 08.899375", "msg": "ненулевой код возврата", "rc": 1, "start": "2019-05-27 12: 30: 08.841603", "stderr": "нет сервера работает в / tmp / tmux-0 / default "," stderr_lines ": [" сервер не запущен on / tmp / tmux-0 / default "]," stdout ":" "," stdout_lines ": []}

, который снова показывает, что книга воспроизведения не имеет доступа к уже существующему.

вот пример книги.


  name: Test Byobu
  hosts: all
  remote_user: osama
  become: yes

задачи:

#  name: kill byobu session
#  shell: byobu kill-session -t testByobu

    name: start byobu session
    shell: byobu new-session -d -s testByobu


  name: task 1
  shell: |
  byobu send-keys -t testByobu:0 'vim' 'C-m'

  name: task 2
  shell: |
  byobu new-window -t testByobu:1
  byobu send-keys -t testByobu:1 'vi' 'C-m'

  name: task 3
  shell: |
  byobu new-window -t testByobu:2
  byobu send-keys -t testByobu:2 'cd /tmp/ && touch testByobu.txt' 'C-m'

  name: task 4
  shell: |
  byobu new-window -t testByobu:3
  byobu send-keys -t testByobu:3 'ping 8.8.8.8' 'C-m'`

Что я ожидаю, так это то, что, когда я запускаю мою playbook (код предоставлен), он должен создать новый сеанс с именем testByobu на ВМ, так что он должен быть доступен, когда я запускаю команду _byobu attach-session -t testByobu_ со всеми ее неповрежденными winows создан в сборнике пьес. И я могу переключиться на все 4 окна, которые создаются в playook.

И что на самом деле происходит, так это то, что книга воспроизведения работает успешно, но на виртуальной машине сеанс работает в фоновом режиме, а бёбу на виртуальной машине, похоже, не имеет понятия об этом сеансе.

Буду признателен за любую помощь в этом отношении.

Обновление Я думаю, что мне следует подвести итог проблемы, это может облегчить понимание подробного описания.

Я хочу запустить сеанс byobu с именем testByobu на виртуальной машине и запускать различные процессы в отдельных окнах этого сеанса в течение всей доступной книги воспроизведения. Книга воспроизведения (предоставленный код) работает успешно, но на ВМ, когда я пытаюсь составить список сеансов byobu с помощью команды byobu list-session, testByobu отсутствует в списке. И по этой причине я также не могу подключиться к этому сеансу при запуске команды byobu attach-session -t testByobu. Важно отметить, что сессия 'testByoby' и все процессы, выполненные для запуска внутри этого сеанса через playbook, действительно отображаются в списке запущенных процессов, созданных командой ps -aux. Я хочу, чтобы сеанс отображался, когда я запускаю команду byobu list-session на виртуальной машине, и, следовательно, вход в этот сеанс должен быть достижим, когда я запускаю команду byobu attach-session -t testByobu.

...