【问题标题】:How can we run sudo rpm commands using ansible我们如何使用 ansible 运行 sudo rpm 命令
【发布时间】:2019-01-30 20:29:33
【问题描述】:

在我的 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

【问题讨论】:

    标签: jenkins ansible ansible-2.x rhel7 ansible-inventory


    【解决方案1】:

    您可以将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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-01
      • 2012-07-29
      • 2014-04-30
      • 2018-04-12
      • 2020-10-08
      • 1970-01-01
      • 1970-01-01
      • 2017-02-08
      相关资源
      最近更新 更多