2016-03-01 104 views
0

问题:我想使用Ansible安装全功能vim。如何获得Ansible安装vim-yum

问题:ansible yum模块无法安装vim,因为它与vim-minimal冲突。如果vim-minimal被卸载,sudo软件包也是如此。如果没有安装sudo软件包,则无法正常运行。

问题:安装vim的正确方法是什么?

回答

0

这里是我的解决方案,我只是不知道它是Ansible方式:

- name: Check if vim-enhanced.rpm is installed 
    command: rpm -q vim-enhanced 
    register: vim_rpm_check 
    changed_when: false 
    failed_when: "'command not found' in vim_rpm_check.stderr" 
    when: ansible_pkg_mgr == 'yum' 

    - name: Execute yum to install vim 
    sudo: yes 
    command: yum -y swap vim-minimal vim install sudo 
    when: ansible_pkg_mgr == 'yum' and vim_rpm_check.stdout.find('is not installed') != -1 
0

Ansible的百胜模块是非常有限的,并且不能够高级交易,如yum shellyum swap的。你将不得不使用命令模块来自己做。

yum -y swap vim-minimal vim-enhanced 
+0

这就是我所想的。既然我必须使用命令模块,那么以幂等的方式做赌注的方式是什么?如果我只是使用命令模块,它不会在每次运行时显示更改吗? – Frobbit

+1

我不知道确切的方法来做到这一点,但我想像你会想要这样的bash片段: '''rpm -q vim-enhanced || yum -y swap vim-minimal vim-enhanced''' 换句话说,检查是否安装了vim-enhanced,如果不是,请尝试为vim-enhanced交换vim-minimal。 – carlwgeorge

+0

有没有一种方法来防止卸载sudo的方式? – Frobbit