2017-07-11 2 views
1

Je suivais ce doc pour installer un paquet brillant dans RedHat 7.3. La commande fournie dans la doc est:Ansible paquet avertissement lors de l'utilisation de sudo

$ sudo su - \ 
-c "R -e \"install.packages('shiny', repos='https://cran.rstudio.com/')\"" 

En Ansible, je l'ai écrit comme ceci:

- name: Installing Shiny Packages 
    shell: sudo su - -c "R -e \"install.packages('shiny', repos='https://cran.rstudio.com/')\"" 
    #when: install_R|changed 

Je reçois un avertissement quand je lance mon PlayBook:

TASK [Installing Shiny Packages] *********************************************** 
[WARNING]: Consider using 'become', 'become_method', and 'become_user' rather 
than running sudo 

changed: [test] 

S'il vous plaît laissez-moi savoir comment écrire cela en ansible afin que je puisse éviter l'avertissement.

Répondre

2

C'est probablement à cause de l'utilisation obsolète sudo de la version 1.9. De la documentation officielle Ansible.

Avant 1.9 Ansible la plupart du temps a permis l'utilisation de sudo et une utilisation limitée de su pour permettre un login/utilisateur distant pour devenir un autre utilisateur et exécuter des tâches, créer des ressources avec les autorisations du 2ème utilisateur. À partir de 1.9, become remplace l'ancien sudo/su, tout en étant rétrocompatible.

Vous pouvez le supprimer en utilisant le become module qui vous permet de « devenir » un autre utilisateur, différent de l'utilisateur connecté à la machine (utilisateur distant). Vous devez définir true pour activer l'escalade de privilèges.

name: Installing Shiny Packages 
    shell: R -e "install.packages('shiny', repos='https://cran.rstudio.com/')" 
become: true 
+0

Comment écrire ceci sans sudo: '$ sudo su - \ -c "R -e \" install.packages ('brillant', repo = 'https: //cran.rstudio.com/') \ "" '? – user182944

+0

@ user182944: vous ne savez pas si vous pouvez essayer 'shell: R -e" install.packages ('shiny', repos = 'https: //cran.rstudio.com/') "' – Inian