2017-10-10 1 views
0

Voici exactement ce que j'essaie de réaliser. Je dois installer un paquet avec des dépendances. J'essaye d'installer le paquet de telnet. Pour cela, deux paquets doivent être installés selon mes besoins: telnet et telnet-server. Sur certains serveurs telnet est déjà installé mais pas telnet-server. Si le paquet telnet est déjà installé alors il n'installe pas telnet-server si je passe telnet- * dans l'invite. Ci-dessous l'exécution du playbookComment installer des sous-paquets via yum

[[email protected] ansible]$ cat prompt.yml 
    --- # Install the package which is provided through command line 
    - hosts: target 
    user: test 
    become: yes 
    connection: ssh 
    gather_facts: no 
    vars_prompt: 
    - name: pkgtoinstall 
    prompt: which package need to install? 
    private: no 
    tasks: 
    - name: Install the provided package 
    yum: pkg={{ pkgtoinstall }} state=latest 

[[email protected] ansible]$ 

Before Installation -: 

[[email protected] opt]$ rpm -qa | grep telnet 
[[email protected] opt]$ 

[[email protected] ansible]$ ansible-playbook prompt.yml 
which package need to install?: telnet* 

PLAY [target] 
*************************************************************************************************************************************************************** 

TASK [Install the provided package] ***************************************************************************************************************************************** 
changed: [192.168.56.102] 

PLAY RECAP ****************************************************************************************************************************************************************** 
192.168.56.102    : ok=1 changed=1 unreachable=0 failed=0 

[[email protected] ansible]$ 

After Installation -: 

[[email protected] opt]$ rpm -qa | grep telnet 
telnet-0.17-64.el7.x86_64 
telnet-server-0.17-64.el7.x86_64 
[[email protected] opt]$ 

Now i have removed telnet-server manually and tried to install by giving telnet-*. It is not getting installed. 

[[email protected] opt]$ sudo yum remove telnet-server 
Loaded plugins: fastestmirror, langpacks 
Resolving Dependencies 
--> Running transaction check 
---> Package telnet-server.x86_64 1:0.17-64.el7 will be erased 
--> Finished Dependency Resolution 

Dependencies Resolved 

============================================================================================================================================================================= 
Package          Arch         Version          Repository       Size 
============================================================================================================================================================================= 
Removing: 
telnet-server        x86_64        1:0.17-64.el7         @base         55 k 

Transaction Summary 
============================================================================================================================================================================= 
Remove 1 Package 

Installed size: 55 k 
Is this ok [y/N]: y 
Downloading packages: 
Running transaction check 
Running transaction test 
Transaction test succeeded 
Running transaction 
    Erasing : 1:telnet-server-0.17-64.el7.x86_64                              1/1 
    Verifying : 1:telnet-server-0.17-64.el7.x86_64                              1/1 

Removed: 
    telnet-server.x86_64 1:0.17-64.el7 

Complete! 
[[email protected] opt]$ rpm -qa | grep telnet 
telnet-0.17-64.el7.x86_64 
[[email protected] opt]$ 

[[email protected] ansible]$ ansible-playbook prompt.yml 
which package need to install?: telnet* 

PLAY [target] *************************************************************************************************************************************************************** 

TASK [Install the provided package] ***************************************************************************************************************************************** 
ok: [192.168.56.102] 

PLAY RECAP ****************************************************************************************************************************************************************** 
192.168.56.102    : ok=1 changed=0 unreachable=0 failed=0 

[[email protected] opt]$ rpm -qa | grep telnet 
telnet-0.17-64.el7.x86_64 
[[email protected] opt]$ 

Répondre

0

Probablement pas la réponse que vous cherchez mais j'installerais les 2 paquets explicitement. L'utilisation de globs pour les installations de paquets a le potentiel d'installer quelque chose dont vous ne voulez pas ou dont vous n'avez pas besoin.

- name: Install the provided package 
    yum: 
    pkg: "{{ item }}" 
    state: latest 
    with_items: 
    - telnet 
    - telnet-server