我们如何使用 ansible 运行 sudo rpm 命令
How can we run sudo rpm commands using ansible
在我的角色中,我有一个任务是尝试安装 Jenkins rpm。 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
您可以将 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
在我的角色中,我有一个任务是尝试安装 Jenkins rpm。 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
您可以将 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