ansible sudo: désolé, vous devez disposer d'un terminal lancer la commande sudo
J'ai besoin d'exécuter tablettes playbook sur Les boîtes et sur aws quand j'ai l'environnement d'installation avec la formation de nuages.
Dans Vagrant fichier j'utilise ansible-local et tout fonctionne bien
name: Setup Unified Catalog Webserver
hosts: 127.0.0.1
connection: local
become: yes
become_user: root
roles: generic
Cependant, quand je créer une instance AWS, l'ansible playbook échoue avec l'erreur:
sudo: sorry, you must have a tty to run sudo
Cela arrive parce qu'il est exécuté en tant que root et il n'a pas d'ats. Mais je ne sais pas comment résoudre ce problème sans faire de changement dans /etc/sudoers
pour permettre !requiretty
Est-il des drapeaux, je peux le programme d'installation en ansible.cfg ou dans ma Formation de Nuages modèle?
"#!/bin/bash\n", "\n", "
echo 'Installing Git'\n","
yum --nogpgcheck -y install git ansible htop nano wget\n",
"wget https://s3.eu-central-1.amazonaws.com/XXX -O /root/.ssh/id_rsa\n",
"chmod 600 /root/.ssh/id_rsa\n",
"ssh-keyscan 172.31.7.235 >> /root/.ssh/known_hosts\n",
"git clone [email protected]:something/repo.git /root/repo\n",
"ansible-playbook /root/env/ansible/test.yml\n
Pourquoi a-t-il besoin d'être exécuté en tant que root?
OriginalL'auteur Kate | 2016-02-24
Vous devez vous connecter pour publier un commentaire.
J'ai été en mesure de résoudre ce problème en définissant la
transport = paramiko
de configuration dansansible.cfg
.OriginalL'auteur user8252064
J'ai trouvé les solutions suivantes pour moi-même:
1. Changement requiretty dans
/etc/sudoers
avecsed
exécuter tablettes playbook et le changer en arrière.OU
2. Dans ansible playbook spécifier la variable:
Exécuter dans le Cloud AWS Formation modèle serait
Et de l'Errance dans l'ansible.cfg, il peut être spécifié
Également en CF modèle peut identifier qui est en cours d'exécution et le passage de variable
ansible-playbook -e$(id -u |egrep '^0$' > /dev/null && require_sudo=False || require_sudo=True; echo "require_sudo=$require_sudo") /apps/ansible/uk.yml
sudo
est obsolète dans ansible,become
etbecome_user
sont pris en charge pour être utilisé.OriginalL'auteur Kate