Ansible не может создать желаемую команду ssh - PullRequest
0 голосов
/ 07 декабря 2018

В моей организации действует политика, позволяющая работать "только" приведенной ниже команде ssh.

ssh -i /tmp/private.key -t user2@host2 bash --noprofile

Я попытался изменить файл хоста ansible инвентаризации для создания вышеупомянутого ssh.Смотрите мой файл ANSNI ниже:

host2 ansible_ssh_common_args="-t -o UserKnownHostsFile=/dev/null" ansible_shell_executable=sh ANSIBLE_HOST_KEY_CHECKING=false ansible_ssh_private_key_file=/tmp/private.key  USER_RUN=user2

Я также пробовал ниже, но они тоже не работают

ansible_shell_executable=/bin/bash
ansible_ssh_extra_arg=.....

Моя версия ANSI:

ansible --version

ansible 2.7.1

  config file = /etc/ansible/ansible.cfg

  configured module search path = [u'/home/user1/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']

  ansible python module location = /usr/lib/python2.7/site-packages/ansible

  executable location = /bin/ansible

  python version = 2.7.5 (default, Sep 12 2018, 05:31:16) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]

В отладкея вижу, что ssh, созданный ansible, не имеет

bash --noprfile

после user2 @ target2

Пожалуйста, помогите найти решение.

1 Ответ

0 голосов
/ 07 декабря 2018

Для этого вы можете установить удаленную оболочку для определенных хостов через

Инвентарь

some_host  ansible_shell_executable="/bin/bash --noprofile"
other_host ansible_shell_executable="/bin/bash --noprofile"

или глобально через

ansible.cfg

executable = /bin/bash --noprofile

Более подробную информацию можно найти в документации ansible .

Обратите внимание, что ansible дополнительно выполняет sftp переводы покапот.

ИМХО, если вы хотите использовать ansible в своей организации, было бы разумно изменить политику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...