2016-03-24 222 views
1

问题:当我尝试安装软件包时,无法继续。 CLI只是在那里闲置。无法使用Ansible安装软件包

SSH被配置为与输出口令连接。我创建了一个名为“test”的用户,我的sudoers文件中有如下配置:

test ALL=(ALL)  NOPASSWD:ALL 
在/etc/ansible/ansible.cfg

而且

inventory  = /etc/ansible/hosts 
#library  = /usr/share/my_modules/ 
remote_tmp  = $HOME/.ansible/tmp 
pattern  = * 
forks   = 5 
poll_interval = 15 
sudo_user  = root 
#ask_sudo_pass = True 
#ask_pass  = True 
transport  = smart 
#remote_port = 22 module_lang = C 

当为用户“测试”我做

yum install lynx 

指定的软件包已安装。 但是,如果我做

ansible local -s -m shell -a 'yum install lynx' 

什么也没有发生。

我不知道什么是对:(

+1

[这就是yum模块存在的原因](https://docs.ansible.com/ansible/yum_module.html)。 – tedder42

+0

@Sam只有在主机下才够用。一些东西跨越: - 主机:成为:真正的任务: - 名称:安装lynx注册:结果成为'通常需要一个布尔如果我没有错,所以整个安装将在root权限下 – qubsup

回答

2

去你得说 “是” 百胜:

试试这个:

ansible local -s -m shell -a 'yum install lynx -y' 
2

尝试使用yum的模块来代替:

ansible local -s -m yum -a 'name=lynx state=present' 
0

您应该使用yum模块或甚至更好的package这是OS通用的模块。

另一方面,你的其他选项是raw模块,它对你的节点运行SSH-dirty命令!

这是在任务使用package模块的示例:

---- 
- hosts: <hosts_names> 
    sudo: yes 
    tasks: 
    - name: install lynx 
    register: result 
    package: name=lynx state=latest 
    become: yes 
    become_user: root 
    become_method: sudo 
    ignore_errors: True 

使用上面的剧本,希望可以帮助您安装你需要的包,即使它没有做到这一点,你”我们可以很容易地通过result变量,看看发生了什么问题。

当然,在所有这些之前,您应该确保您的YUM存储库能够正常工作!