我在 AWS 上部署了一个需要时区配置的单实例服务器 - Elastic Beanstalk,我将时区更改为使用 ssh 登录 EC2 环境,并使用下面列出的 linux 命令对其进行更新;
sudo rm /etc/localtime
sudo ln -sf /usr/share/zoneinfo/Europe/Istanbul /etc/localtime
sudo reboot
一切都很好,因为服务器作为单个实例运行。当我想使用自动缩放,负载平衡功能时,问题出现了。在单个实例上,在 linux AMI 上更新时区是可以的,但在自动扩展模式下,由于实例是根据阈值指标创建/销毁/重新创建的,因此所有配置都将丢失。
我的简单问题是,如何在 AWS Elastic Beanstalk 中更改/配置可自动扩展的负载均衡模式的时区?
EBames配置新启动的服务器。
这是一个对我有用的示例。将以下命令添加到文件.ebextensions/timezone.config
:
commands:
set_time_zone:
command: ln -f -s /usr/share/zoneinfo/US/Pacific /etc/localtime
这里的答案只能部分地为我工作(使用上面的答案时我在部署时出错)。经过一些修改,以下内容对我有用。我相信这与"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
对于我在 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"
我不确定第二个命令是否绝对必要,但实例肯定在那里玩得很好(尤其是对于即将发生的任务!
您也可以在命令行中通过 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