4

在部署AWS彈性青苗我想要做的兩件事情:彈性青苗cron和部署權限

  1. 採取:用cron項的文件,並將該文件中/etc/cron.d/
  2. 變化包含在一個單一的目錄shell腳本文件的權限,使他們能夠由cron

在我.ebextensions文件夾執行我有以下幾點:

container_commands: 
    00fix_script_permissions: 
    command: "chmod u+x /var/app/current/scripts/*" 
    01setup_cron: 
    command: "cat .ebextensions/propel_mis_crons.txt > /etc/cron.d/propel_mis_crons && chmod 644 /etc/cron.d/propel_mis_crons" 
    leader_only: true 

而且在.ebextensions文件夾中的propel_mis_crons.txt有:

# m h dom mon dow command 
MAILTO="[email protected]" 
* * * * * root /var/app/current/scripts/current_time.sh 

我檢查部署日誌,我可以看到以下內容:

2013-08-09 14:27:13,633 [DEBUG] Running command 00fix_permissions_dirs 
2013-08-09 14:27:13,633 [DEBUG] Generating defaults for command 00fix_permissions_dirs 
<<< 
2013-08-09 14:27:13,736 [DEBUG] No test for command 00fix_permissions_dirs 
2013-08-09 14:27:13,752 [INFO] Command 00fix_permissions_dirs succeeded 
2013-08-09 14:27:13,753 [DEBUG] Command 00fix_permissions_dirs output: 
2013-08-09 14:27:13,753 [DEBUG] Running command 01setup_cron 
2013-08-09 14:27:13,753 [DEBUG] Generating defaults for command 01setup_cron 
<<< 
2013-08-09 14:27:13,829 [DEBUG] Running test for command 01setup_cron 
2013-08-09 14:27:13,846 [DEBUG] Test command output: 
2013-08-09 14:27:13,847 [DEBUG] Test for command 01setup_cron passed 
2013-08-09 14:27:13,871 [INFO] Command 01setup_cron succeeded 
2013-08-09 14:27:13,872 [DEBUG] Command 01setup_cron output: 

但是在部署上的所有權限腳本目錄中的文件設置不正確,並且cron不能運行。我不確定是否由於權限問題導致cron沒有運行,或者是否有其他問題會阻止此問題。這是在PHP5.4 64位Amazon Linux實例上運行的。

希望對此有所幫助。隨着時間的推移,很有可能會添加由cron觸發的新shell腳本。

回答

3
container_commands: 
00_fix_script_permissions: 
command: "chmod u+x /opt/python/ondeck/app/scripts/*" 

我是一個Linux和AWS Noob,但是我發現修改你的命令,如上所述,我的用例成功了。

的/ opt /蟒蛇/電流/應用/腳本/ createadmin現在有用戶

+0

你救了我!關鍵是編輯.../ondeck/...文件,而不是....../current/... one!謝謝 – TimSum

2

@Ed似乎在那裏他建議chmod'ing的ondeck文件而不是在current一個是正確的執行權限。

此外,這是我通過彈性beanstalk .config文件設置我的cron作業。它當然可能不是最好的方式,但它適用於我的應用程序。

`"files":{ 
    "/home/ec2-user/cronjobs.txt":{ 
     "mode":"000777", 
     "owner":"ec2-user", 
     "group":"ec2-user", 
     "source":"https://s3.amazonaws.com/xxxxxxxxxx/cronjobs.txt" 
    } 
} 
"container_commands":{ 
    "01-setupcron":{ 
    "command": "crontab /home/ec2-user/cronjobs.txt -u ec2-user", 
    "leader_only": true 
    },` 

首先,我拉入一個cronjobs文本文件,並將其保存在ec2-user文件夾中。接下來,在container_commands中,我將該文件應用於crontab。

再次,我不是專家,但這是我能想到的最好的,它對我們來說工作得很好。