ansible - 如何强制 Ansible 使用 sudo 安装包?
问题描述
我有一个比运行角色的剧本,并使用具有 sudo 权限的用户登录服务器。问题是,当切换到这个用户时,我仍然需要使用sudo
来安装包。
IE:
sudo yum install httpd
但是,Ansible 似乎忽略了这一点,并会尝试安装没有 的软件包sudo
,这将导致失败。
Ansible 将运行以下命令:
yum install httpd
这是我使用的角色:
tasks:
- name: Import du role 'memcacheExtension'
import_role:
name: memcacheExtension
become: yes
become_method: sudo
become_user: "{{become_user}}"
become_flags: '-i'
tags:
- never
- memcached
这是在我的上下文中失败的任务:
- name: Install Memcached
yum:
name: memcached.x86_64
state: present
我是否将sudo
参数设置在错误的位置?还是我做错了什么?
先感谢您
解决方案
您可以指定成为:是的几个地方。它通常用于任务级别,有时用作命令行参数(--become,-b 使用 become 运行操作)。也可以在播放级别设置:
- hosts: servers
become: yes
become_method: enable
tasks:
- name: Hello
...
您也可以在 group_vars 中启用它:
group_vars/exmaple.yml
ansible_become: yes
对于您的示例,使用它来安装软件我会将其设置在任务级别。我认为在您的情况下,导入是问题所在。您应该在要导入的文件中设置它。
推荐阅读
- node.js - 如何在不使用 ref 的情况下在 mongoose 中进行填充
- unity3d - 鼠标右键单击无法统一
- php - Blade @inject 创建新的 Singleton 实例
- jmeter - Locust 和 Jmeter 的 HTTP 请求改变 Tomcat 服务器上的负载
- angular - 使用共享点中的角度更新 CheckBox 中的值
- image-processing - 将灰度HImage(MVtec Halcon库)转换为c#位图
- apache-camel - 从 Talend cSetHeader 中的 XPath 表达式获取字符串结果
- python - 用户警告:覆盖先前设置的目标。warnings.warn("覆盖之前设定的目标。")
- raku - 数组通过`for`循环时保持数组
- vba - VBA office 2016 windows7/10 区别:设置 IXMLDOMNodeList = DOMDocument60.childNodes