我在 AWS - Elastic Beanstalk 上部署了一个需要时区配置的单实例服务器,并且我将时区更改为使用ssh登录EC2环境,并更新它与下面列出的linux命令;
sudo rm /etc/localtime
sudo ln -sf /usr/share/zoneinfo/Europe/Istanbul /etc/localtime
sudo reboot
当服务器作为单个实例运行时,一切都很好。问题出现了,因为我想使用Auto Scaling,负载平衡功能。在单个实例上,更新linux AMI上的时区很好,但在自动扩展模式下,因为根据阈值指标创建/销毁/重新创建实例,所有配置都将丢失。
我的简单问题是,如何在AWS Elastic Beanstalk中为自动可扩展的负载均衡模式更改/配置时区?
答案 0 :(得分:10)
您可以使用ebextensions配置新启动的服务器
这是一个适合我的例子。将以下命令添加到文件.ebextensions/timezone.config
:
commands:
set_time_zone:
command: ln -f -s /usr/share/zoneinfo/US/Pacific /etc/localtime
答案 1 :(得分:1)
这里的答案只能部分地为我工作(我在使用上面的答案时遇到了错误)。经过一些修改后,以下内容对我有用。我认为这与“cwd”和“权限”有关。
commands:
0000_0remove_localtime:
command: rm -rf /etc/localtime
0000_1change_clock:
command: sed -i 's/UTC/Asia\/Singapore/g' /etc/sysconfig/clock
cwd: /etc/sysconfig
0000_2link_singapore_timezone:
command: ln -f -s /usr/share/zoneinfo/Asia/Singapore /etc/localtime
cwd: /etc
答案 2 :(得分:0)
对于我在 StackOverflow 上的第一个答案......我必须在一个出色的早期答案中添加新信息。
对于 AWS Linux 2、Elastic Beanstalk,有一种新的简单的时间设置方法。将以下命令添加到文件 .ebextensions/xxyyzz.config 中:
container_commands:
01_set_bne:
command: "sudo timedatectl set-timezone Australia/Brisbane"
command: "sudo systemctl restart crond.service"
我不确定第二个命令是否绝对必要,但实例在那里肯定能很好地发挥作用(尤其是对于立即发生的任务!)。
答案 3 :(得分:-1)
您也可以通过命令行中的 ssh 进行配置:
连接到Elastic Beanstalk实例时: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html#change_time_zone
sudo ln -sf /usr/share/zoneinfo/America/Montreal /etc/localtime
您可以使用 eb 命令行工具连接到EB实例。 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-cmd-commands.html
eb ssh