Amazon Elastic Beanstalk-Changer Le Fuseau Horaire
J'exécute une instance EC2 à travers AWS Elastic Beanstalk. Malheureusement, il a le mauvais fuseau horaire - ses 2 heures plus tôt qu'il ne devrait l'être, parce que le fuseau horaire est réglé sur UTC. Ce dont j'ai besoin est GMT+1.
Est-il un moyen de configurer le .la configuration ebextensions, afin de forcer L'instance EC2 à utiliser le bon fuseau horaire?
7 réponses
Oui, vous le pouvez.
il suffit de créer un fichier /.ebextensions/00-set-timezone.config avec le contenu suivant
commands:
set_time_zone:
command: ln -f -s /usr/share/zoneinfo/Australia/Sydney /etc/localtime
ceci suppose que vous utilisez Amazon Linux AMI image par défaut. Si vous utilisez une autre distribution Linux, changez simplement la commande en ce qu'elle nécessite pour définir le fuseau horaire dans ce Linux.
Il s'agit d'une réponse de l'entreprise de soutien aws et cela fonctionne!
---- message d'Origine ----
Comment puis-je changer le fuseau horaire d'un environnement ou plutôt aux instances de l'environnement dans Elastic Beasntalk à UTC/GMT -3 heures (Buenos Aires, Argentina)? Im utilise actuellement Amazon Linux 2016.03. Merci d'avance pour votre aide. Égard.
---------- Réponse ----------
Bonjour, Merci D'avoir contacté Support AWS concernant la modification de votre fuseau horaire D'instances de haricot élastique pour utiliser UTC / GMT -3 heures (Buenos Aires, Argentina), voir ci-dessous les étapes sur la façon d'effectuer cette modification.
l'exemple ci-dessous montre comment modifier le fuseau horaire de L'environnement élastique en utilisant .ebextensions for Amazon Linux OS:
- Créer .dossier ebextensions à la racine de votre application
Créer un .fichier de configuration par exemple 00-set-timezone.config Enregistrez et ajoutez le contenu ci-dessous dans le formatage yaml.
container_commands: 01changePHP: command: sed -i '/PHP_DATE_TIMEZONE/ s/UTC/America\/Argentina\/Buenos_Aires/' /etc/php.d/environment.ini 01achangePHP: command: sed -i '/aws.php_date_timezone/ s/UTC/America\/Argentina\/Buenos_Aires/' /etc/php.d/environment.ini 02change_AWS_PHP: command: sed -i '/PHP_DATE_TIMEZONE/ s/UTC/America\/Argentina\/Buenos_Aires/' /etc/httpd/conf.d/aws_env.conf 03php_ini_set: command: sed -i '/date.timezone/ s/UTC/America\/Argentina\/Buenos_Aires/' /etc/php.ini commands: 01remove_local: command: "rm -rf /etc/localtime" 02link_Buenos_Aires: command: "ln -s /usr/share/zoneinfo/America/Argentina/Buenos_Aires /etc/localtime" 03restart_http: command: sudo service httpd restart
déployer l'application à la tige de haricot élastique y compris le .ebextensions et le fuseau horaire changeront comme indiqué ci-dessus.
j'espère que ça aide
salutations!
si vous utilisez windows dans votre environnement eb... .
créer un dossier nommé .ebextensions à la racine de votre projet..
à l'intérieur de ce dossier Créer un fichier nommé timezone.config
dans ce fichier ajouter ce qui suit:
commands:
set_time_zone:
command: tzutil /s "Central Standard Time"
définir le fuseau horaire au besoin
j'utilise la coutume .fichier ini en php.le dossier ainsi que les recommandations régulières de http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html#change_time_zone:
# .ebextensions/02-timezone.config
files:
/etc/php.d/webapp.ini:
mode: "000644"
owner: root
group: root
content: |
date.timezone="Europe/Amsterdam"
commands:
01_set_ams_timezone:
command:
- sed -i 's/UTC/Europe\/Amsterdam/g' /etc/sysconfig/clock
- ln -sf /usr/share/zoneinfo/Europe/Amsterdam /etc/localtime
changer le fuseau horaire D'EC2 avec du haricot élastique est simple:
- Créer un
.ebextensions
dossier dans la racine - Ajouter un fichier avec nom de fichier fin .config (
timezone.config
)
dans le fichier
container_commands:
time_zone:
command: ln -f -s /usr/share/zoneinfo/America/Argentina/Buenos_Aires /etc/localtime
Alors vous avez fait.
Notez que l' container_commands
est différent de commands
du document, il est indiqué:
commands
exécutez avant que l'application et le serveur web soient configurés et la version d'application le fichier est extrait.
C'est la raison pour laquelle votre commande de fuseau horaire ne fonctionne pas car le serveur n'a pas encore démarré.
container_commands
exécuter après que l'application et le serveur web ont été mise en place et le fichier de version de la demande a été extrait, mais avant la version de l'application est déployée.
ces solutions de contournement ne corrigent que le fuseau horaire des applications. Mais quand vous avez n'importe quels services de système comme un cron exécuter il regarde le /etc/sysconfig/clock
et c'est toujours UTC
. Si vous suivez les logs cron ou aws-sqsd, vous remarquerez que les horodateurs sont toujours à 2h derrière - dans mon cas. Et un changement dans le réglage de l'horloge aurait besoin d'un redémarrage pour prendre effet - ce qui n'est pas une option à considérer si vous avez l'autoscaling en place ou si vous voulez utiliser ebextensions
pour changer le système l'horloge de la config.
Amazon est au courant de ce problème et je ne pense pas qu'ils l'aient résolu encore.
se Connecter AMI (amazon instance de linux) à l'aide de mastic ou ssh et exécuter les commandes ci-dessous;
sudo rm /etc/localtime
sudo ln -sf /usr/share/zoneinfo/Europe/Istanbul /etc/localtime
sudo reboot
Explication de la procédure ci-dessus est tout simplement;
- supprimer localtime,
- mise à jour du fuseau horaire,
- reboot
veuillez noter que j'ai changé mon fuseau horaire en heure locale de la Turquie, vous pouvez trouver votre fuseau horaire en inscrivant le répertoire zoneinfo avec la commande ci-dessous;
ls /usr/share/zoneinfo
ou tout simplement vérifier le fuseau horaire abbrevetaions via wikipédia;
http://en.wikipedia.org/wiki/Category:Tz_database
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html
Note: je ne suis pas sûr que si c'est la meilleure pratique ou pas (probablement pas), mais j'ai appliqué la procédure que j'ai écrit ci-dessus et ça marche pour moi.