Exécuter une commande à distance après sudo su anotheruser dans Rundeck
Je suis nouveau avec Rundeck et complètement surpris avec elle et je suis en train d'exécuter un travail et mon scénario est détaillé ci-dessous:
-
Rundeck est configuré avec un mot de passe ssh moins d'authentification entre un nœud de Serveur (rundeck serveur) et le noeud Cible (distance hôte Solaris)
pour l'utilisateur "maître". -
Dans le nœud Cible, je veux exécuter un script
/app/acme/stopApp.sh
avec l'utilisateurappmanager
. -
Normalement quand j'en ai besoin pour exécuter le script ci-dessus, je procéder manuellement avec:
ssh master@server
sudo su - appmanager
ou tout simplement
ssh -t master@server
sudo su - appmanager
fonctionne sans mot de passe et enfin exécuter (en tant que appmanager)
/app/acme/stopApp.sh
Mais je ne sais pas comment reproduire ces étapes à l'aide de Rundeck. J'ai lu dans certains précédentes
les messages que pour chaque emploi de la ligne de rundeck utilise une nouvelle connexion ssh, de sorte que le flux de travail soufflet
échoue toujours pour moi avec les messages:
sudo: pas d'ats présent et pas de askpass programme spécifié
De la commande à distance a échoué avec l'état de sortie 1
Quelqu'un pourrait-il m'aider avec ce problème?
Sans cette fonctionnalité, je ne serais pas en mesure d'introduire un peu de DevOps
dans mon département. 😀
J'ai lu le guide de l'utilisateur et guide de l'administrateur, mais je ne pouvais pas trouver un exemple facile,
ni dans ce forum, à suivre.
Je vous remercie de votre aide.
Rundeck version 1.4
Vous devez vous connecter pour publier un commentaire.
Bien que votre connexion ssh fonctionne sans mot de passe, vous devez également configurer sudo sur votre serveur Cible, afin de ne pas exiger un mot de passe.
Puisque vous n'avez besoin pour la maître utilisateur d'être en mesure d'exécuter des commandes en tant qu' appmanager utilisateur, vous pouvez gérer ce complètement via sudo. Dans
/etc/sudoers
sur la Cible, ajouter:Ensuite votre commande ssh devient:
Si vous avez besoin de la configuration de l'environnement qui est normalement pris en charge par la appmanager shell de connexion, vous aurez besoin de source que le programme d'installation de manière explicite. (Et je dirais que le déploiement configuration de l'environnement ne doit pas être confinée à un shell de connexion de toute façon.)
Plus de détails sur comment permettre à un utilisateur d'exécuter des commandes en tant qu'un autre utilisateur sont dans un ServerFault répondre et les plus denses page de man sudoers.
Essaie d'ouvrir un shell de connexion, et veut donc un vrai terminal. Enlever le "-" pour éviter ce problème. En fin de compte, votre commande va ressembler
echo MyFancyPassword | sudo -S su - MyFancyUser any_shell_command