Comment définir des Variables d'Environnement sur une instance EC2 via les Données de l'Utilisateur
Je suis en train de définir des variables d'environnement avec EC2s les données de l'utilisateur, mais rien que je ne semble fonctionner
voici les données de l'Utilisateur scripts, j'ai essayé
#!/bin/bash echo "export HOST_URL=checkEmai-LoadBala-ICHJ82KG5C7P-23235232.us-east-1.elb.amazonaws.com" >> /env.sh source /env.sh
Et l'autre:
#!/bin/bash echo "#!/bin/bash" >> /env.sh echo "export HOST_URL=checkEmai-LoadBala-ICHJ82KG5C7P-67323523.us-east-1.elb.amazonaws.com" >> /env.sh chmod +x /env.sh /env.sh
Ils ont tous deux faire absolument rien, et si je me connecte et la commande source /env.sh
ou /env.sh
il fonctionne. donc, ce doit être quelque chose d'interdit que je suis en train de faire.
Voici le résultat de /var/log/cloud-init-output.log
aide -e -x
+ echo 'export HOST_URL=checkEmai-LoadBala-ICHJ82KG5C7P-2141709021.us-east-1.elb.amazonaws.com' + source /env.sh ++ export HOST_URL=checkEmai-LoadBala-ICHJ82KG5C7P-2141709022.us-east-1.elb.amazonaws.com ++ HOST_URL=checkEmai-LoadBala-ICHJ82KG5C7P-2141709022.us-east-1.elb.amazonaws.com
Encore, echo $HOST_URL
est vide
Comme demandé, le plein UserData script
#!/bin/bash set -e -x echo "export HOST_URL=checkEmai-LoadBala-ICHJ82KG5C7P-2141709021.us-east-1.elb.amazonaws.com" >> /env.sh source /env.sh /startup.sh staging 2649
Êtes-vous essayer de définir les variables d'environnement pour les scripts qui s'exécutent plus tard dans les données utilisateur, ou voulez-vous les variables disponibles lorsque vous vous connectez au serveur via SSH? Aussi, êtes-vous sûr que l'AMI que vous utilisez prend en charge les données utilisateur de scripts?
1: je suis en train de mettre les données de l'utilisateur à une application qui s'exécute après que le script. 2: oui, les données de l'utilisateur scripts fonctionnent, c'est juste un ajout à un script qui s'exécute après que l'on
Pour être clair, le script que vous souhaitez les variables à disposition est également appelé dans vos données utilisateur de script?
oui, l'extrait de code est à copier-coller à partir d'instance ec2, les données de l'utilisateur
Pouvez-vous afficher l'intégralité de l'utilisateur des données de script? Où êtes-vous en cours d'exécution
1: je suis en train de mettre les données de l'utilisateur à une application qui s'exécute après que le script. 2: oui, les données de l'utilisateur scripts fonctionnent, c'est juste un ajout à un script qui s'exécute après que l'on
Pour être clair, le script que vous souhaitez les variables à disposition est également appelé dans vos données utilisateur de script?
oui, l'extrait de code est à copier-coller à partir d'instance ec2, les données de l'utilisateur
Pouvez-vous afficher l'intégralité de l'utilisateur des données de script? Où êtes-vous en cours d'exécution
echo $HOST_URL
?OriginalL'auteur Gleeb | 2015-12-10
Vous devez vous connecter pour publier un commentaire.
De l'utilisateur des données de script sur EC2 est exécuté après le démarrage dans son propre processus. Les variables d'environnement, se mettre dans ce processus, et qui disparaissent lorsque le processus s'arrête. Vous ne verrez pas les variables d'environnement dans d'autres processus, à savoir le shell de connexion ou d'autres programmes.
Vous devrez trouver un moyen d'obtenir ces variables d'environnement, ce programme a besoin de les voir.
Où avez-vous besoin de ces variables sera disponible? Dans "/startup.sh mise en scène 2649"?
MODIFIER
Essayez ceci:
Puis "modifier" /startup.sh" et mettez la ligne suivante en haut:
De démarrage de l'instance, puis coller /tmp/var ici.
Ajout dans la réponse ci-dessus pour une meilleure mise en forme.
OriginalL'auteur Ziffusion
L'un des plus configurable approche pour définir des variables d'environnement pour les instances EC2, est d'utiliser EC2 Paramètre Magasin. Cette approche sera plus facile de gérer les différents paramètres pour un grand nombre d'instances EC2, à la fois chiffré à l'aide de AWS KMS ainsi qu'en texte brut. Il permet également de changer les valeurs de paramètres avec un minimum de changements dans l'instance EC2. Les étapes sont comme suit.
e.g à l'Aide de Obtenez-Le Paramètre commande pour récupérer db_connection_string paramètre(non Chiffré).
Remarque: Pour plus de détails dans la mise en place d'AWS KMS Clés, la définition des chaînes cryptées, la gestion des politiques IAM & etc., reportez-vous aux articles suivants.
OriginalL'auteur Ashan
Je trouve cela d'une manière assez facile à définir les variables d'environnement pour tous les utilisateurs à l'aide de Données de l'Utilisateur. Il me permet de configurer des applications de sorte que le même AMI peut travailler avec plusieurs scénarios:
Maintenant, tous les utilisateurs auront DB_CONNECTION, DB_USERNAME et DB_PASSWORD définir comme des variables d'environnement.
-bash: /etc/profile: Permission denied
. PS: j'ai essayer avec sudo.OriginalL'auteur hamx0r
Vous pouvez ajouter un autre script shell dans
/etc/profile.d/yourscript.sh
qui va contenir l'ensemble des variables d'environnement que vous souhaitez ajouter.Ce script sera exécuté à chaque démarrage et votre variable sera disponible pour tous les utilisateurs.
Le code ci-dessus crée un script shell pour définir la variable d'environnement pour les ssfe région par défaut et la copie d'
profile.d
.OriginalL'auteur hardik khandelwal
Après avoir fait le fourre dans les données de l'utilisateur du script, le processus s'arrête.
Donc, quelle que soit la variable d'environnement de l'exportation ne sera pas là dans le prochain processus. Une façon est de mettre les exportations dans le .bashrc fichier afin qu'il soit disponible dans la prochaine session.
OriginalL'auteur harsh.tibrewal