Я пытаюсь запустить именованный сеанс 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
.