12 votes

Utiliser ec2-init scripts avec Ubuntu sur EC2 - Définir automatiquement le nom d'hôte et s'enregistrer avec Route53

J'aimerais vraiment pouvoir utiliser le ec2-init scripts pour faire un peu de ménage lorsque je lance une instance. Idéalement, je voudrais pouvoir passer des données utilisateur pour définir le nom d'hôte et exécuter un couple d'initialisation scripts (pour configurer puppet, etc.).

Je vois un script appelé ec2-set-hostname mais je ne suis pas sûr que vous puissiez l'utiliser pour définir un nom d'hôte arbitraire à partir des données de l'utilisateur ou que le format des données de l'utilisateur devrait être.

Quelqu'un a utilisé ces scripts et sait comment on peut définir le nom d'hôte et exécuter quelques scripts en même temps ?

Merci d'avance.

2voto

Josh Points 21

J'ai installé la gemme route53, et écrit un petit script :

gem install route53

#!/bin/bash
DATE=`date +%Y%m%d%H%M%S`
export HOME=/root
export DEBIAN_FRONTEND=noninteractive
export PATH=/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/aws/bin    /usr/local/node:$PATH
export JAVA_HOME=/usr/java/current
export EC2_HOME=/usr/local/aws
export EC2_PRIVATE_KEY=/root/.ec2/pk-XXXXXXXXXXXXXXXXXXXXXXX
export EC2_CERT=/root/.ec2/cert-XXXXXXXXXXXXXXXXXXXX
export EC2_INSTANCE_ID=`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`
echo "$EC2_INSTANCE_ID"
mkdir  /root/$EC2_INSTANCE_ID
ec2din $EC2_INSTANCE_ID > /root/$EC2_INSTANCE_ID/$EC2_INSTANCE_ID.txt
export FQDN=`cat /root/$EC2_INSTANCE_ID/$EC2_INSTANCE_ID.txt |grep Name |awk '{print $5}'`
export EC2_DNS_NAME=`cat /root/$EC2_INSTANCE_ID/$EC2_INSTANCE_ID.txt |grep INSTANCE |awk '{print $4}'`
/usr/bin/ruby1.8 /usr/bin/route53 -g -z /hostedzone/XXXXXXXX --name $FQDN. --type CNAME --ttl 60 --values $EC2_DNS_NAME > /tmp/route53.out 2>&1

-Josh

0voto

user1238985 Points 11

J'ai adopté une approche similaire à celle de 'sgargan' en permettant à une instance de créer son propre enregistrement DNS dans Route 53, mais à la place j'ai utilisé la bibliothèque phython AWS 'boto' et j'ai configuré 'systemd' (le remplacement de init/upstart publié dans Fedora 15/16) pour supprimer l'entrée DNS lorsque l'hôte est arrêté.

Veuillez consulter la marche à suivre suivante pour savoir comment procéder : -.

http://www.practicalclouds.com/content/blog/1/dave-mccormick/2012-02-28/using-route53-bring-back-some-dns-lovin-your-cloud

Bien qu'il ne soit pas idéal d'exposer vos ips internes dans un fichier de zone DNS externe, jusqu'à ce qu'Amazon crée un service DNS interne, je pense qu'il est préférable d'utiliser vos propres instances BIND.

0voto

Jacob Kiers Points 11

Le lien mentionné dans la réponse précédente n'est plus disponible. Mais il est toujours disponible sur la Wayback Machine :  http://web.archive.org/web/20140709022644/http://www.practicalclouds.com/content/blog/1/dave-mccormick/2012-02-28/route53-bring-back-some-dns-lovin-ec2

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X