Я использую Vagrant и Ansible для настройки официальной Oracle базы данных 12.1.0.2-ee, работающей на Docker.
Контейнер работает, соединение s sh установлено, и Ansible может подключиться к контейнеру как root и как бродячие пользователи.
При попытке подключения как oracle, Я получаю следующее сообщение об ошибке:
fatal: [oracle]: FAILED! => {
"changed": false,
"module_stderr": "Shared connection to 127.0.0.1 closed.\r\n",
"module_stdout": "sudo: pam_open_session: Permission denied\r\nsudo: policy plugin failed session initialization\r\n",
"msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
"rc": 1
}
cat /etc/os-release
NAME="Oracle Linux Server"
VERSION="7.7"
Я пытался добавить следующие инструкции в свой Dockerfile:
RUN usermod -aG wheel oracle \
&& sed -i 's/session.*include.*system-auth//g' /etc/pam.d/su \
&& sed -i 's/session.*include.*system-auth//g' /etc/pam.d/sudo \
&& sed -i 's/auth.*include.*system-auth//g' /etc/pam.d/su \
&& sed -i 's/auth.*include.*system-auth//g' /etc/pam.d/sudo
В журналах Ansible я вижу следующие инструкции:
sudo -H -S -n -u root / bin / sh => Эскалация выполнена успешно
<127.0.0.1> SSH: EXEC ssh -o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -o
IdentityFile=/LOCAL_PATH/.vagrant/machines/default/docker/private_key
-o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o Port=2222 -o
IdentityFile="LOCAL_PATH/.vagrant/machines/default/docker/private_key"' -o
KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,
hostbased,publickey -o PasswordAuthentication=no -o 'User="vagrant"' -o ConnectTimeout=30 -o
ControlPath=/USER_HOME/.ansible/cp/055b8f4af0 -tt
127.0.0.1 '/bin/sh -c '"'"'sudo -H -S -n -u root /bin/sh -c '"'"'"'"'"'"'"'"'echo
BECOME-SUCCESS-sujwsvhjtsxvtngoudlcdcecaumcnrwn ;
/usr/bin/python /home/vagrant/.ansible/tmp/ansible-tmp-1583230413.0734274-21323839197510/AnsiballZ_setup.py'"'"'"'"'"'"'"'"' && sleep 0'"'"''
sudo -H -S -n -u oracle / bin / sh => sudo: pam_open_session: В доступе отказано
<127.0.0.1> SSH: EXEC ssh -o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -o
IdentityFile=/LOCAL_PATH/.vagrant/machines/default/docker/private_key
-o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o Port=2222 -o
'IdentityFile="/LOCAL_PATH/.vagrant/machines/default/docker/private_key"' -o
KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,
hostbased,publickey -o PasswordAuthentication=no -o 'User="vagrant"' -o ConnectTimeout=30 -o
ControlPath=/USER_HOME/.ansible/cp/055b8f4af0 127.0.0.1 '/bin/sh -c '"'"'rm -f -r
/var/tmp/ansible-tmp-1583230420.6367478-37780571683963/ > /dev/null 2>&1 && sleep 0'"'"''
<127.0.0.1> (0, b'', b'')
Есть идеи, откуда оно может прийти?
Спасибо.
Фред.