2016-03-01 107 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