Как мы можем запускать команды sudo rpm, используя ansible - PullRequest
0 голосов
/ 30 января 2019

В моей заданной роли у меня есть задача, в которой я пытаюсь установить скорость вращения Jenkins.Rpm находится в каталоге / tmp на целевом хосте.Кроме того, у меня есть разрешение на запуск команды "sudo / bin / rpm -Uvh /tmp/jenkins-2.107.1.2-1.1.noarch.rpm", которая работает, когда я пытался запустить ее на сервере напрямую.Но при выполнении той же команды через командный модуль происходит сбой.

Задача:

- name: run the rpm command on masters
  command: sudo /bin/rpm -Uvh jenkins-2.107.1.2-1.1.noarch.rpm
  args:
    chdir: /tmp 

Ошибка:

fatal: [xxxx. xxx.com]: FAILED! => {"changed": false, "cmd": "'sudo rpm' -Uvh 'jenkins-2.107.1.2-1.1.noarch.rpm'", "msg": "[Errno 2] No such file or directory", "rc": 2} 

Разрешение на целевом хосте:

User XXXX may run the following commands on target_Host_Name:
    (root) NOPASSWD: /usr/sbin/service jenkins stop, /usr/sbin/service jenkins start, /bin/rpm -Uvh jenkins*.noarch.rpm

1 Ответ

0 голосов
/ 30 января 2019

Вы можете использовать модуль ansible yum с become: true вместо модуля command с sudo, например:

- name: install jenkins rpm from a local file
  yum:
    name: /tmp/jenkins-2.107.1.2-1.1.noarch.rpm
    state: present
  become: true

Примечание :ошибка [Errno 2] No such file or directory явная, файл /tmp/jenkins-2.107.1.2-1.1.noarch.rpm не существует.Необходимо убедиться, что файл существует, прежде чем пытаться установить rpm.

Для получения дополнительной информации о повышении привилегий в ansible см. https://docs.ansible.com/ansible/latest/user_guide/become.html

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