2

我有部署在AWS單個實例的服務器 - 彈性魔豆需要時區配置,我改變了時區與登錄到EC2環境中使用ssh,並與更新下面列出的linux命令;配置AWS彈性青苗時區的自動縮放

sudo rm /etc/localtime 
sudo ln -sf /usr/share/zoneinfo/Europe/Istanbul /etc/localtime 
sudo reboot 

一切都很好,因爲服務器作爲單個實例運行。問題出現了,因爲我想使用Auto Scaling,負載平衡功能。在單個實例上,更新linux AMI上的時區是很好的,但在自動縮放模式下,因爲根據閾值指標創建/銷燬/重新創建實例,所有配置都會丟失。

我的一個簡單問題是,如何在AWS Elastic Beanstalk中更改/配置可自動擴展的負載平衡模式的時區?

+0

使這很難的事情是'sudo reboot'。我不認爲你需要它。應該有一種方法來重新啓動時鐘服務。假設你可以,你可以通過使用ebextension配置文件來做到這一點 –

回答

9

您可以使用ebextensions配置新啓動的服務器。
這是一個適合我的例子。將以下命令添加到文件.ebextensions/timezone.config

commands: 
    set_time_zone: 
     command: ln -f -s /usr/share/zoneinfo/US/Pacific /etc/localtime 
+0

優秀的答案。對我來說都很好。 – hguzman

-1

您還可以通過在命令行SSH配置它:

當連接到您的彈性魔豆實例: 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 
+0

此解決方案的唯一問題是它不可持續。如果您的Elastic Beanstalk實例被重建(或您的應用程序自動縮放),則新實例不會自動進行配置,並需要指定手動'ssh'干預。來自@tal的'.ebextensions'答案是自動的,並且存在於您的應用程序配置中。 – Dan

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