我在生產中的幾個ec2實例上運行我的ruby on rails電子商務應用程序。自從我們進行持續集成之後,我還沒有啓用自動擴展功能,我們在需要時進行部署。我爲所有原因使用廚師。我想弄清楚如何使用廚師將代碼自動部署到多個ec2實例並進行手動干預。我試圖在初始ec2實例工作正常的時候部署代碼。但我的問題是如何在自動縮放模式下執行此操作,以便實例從github或bit bucket中提取最新的代碼,並在更新包和更新之後部署itseld。使用廚師的自動部署
1
A
回答
6
不夠公平。這是我做的,它工作正常:
我已經創建了一個AMI有以下設置:
從廚師工作站創建
/etc/chef
目錄- 複製
your_company-validator.pem
到AMI at/etc/chef/validation.pem
- 創建
/etc/chef/client.rb
如下。
如果您使用廚師獨奏,請相應地進行更改。
cat >> /etc/chef/client.rb <EF
log_level :auto
log_location STDOUT
chef_server_url "https://api.opscode.com/organizations/your_company"
validation_client_name "you_company-validator"
EF
現在,您已經在AMI中爲廚師引導配置了以上所有東西。
當您啓動AMI(使用自動縮放或任何其他方式)時,請提供user-data
其中將在其中運行您選擇的run_list的廚師客戶端。我在下面提供的用戶數據:
#!/bin/bash
cat > /etc/chef/firstboot.json << EOL
{"run_list": ["recipe[java::oracle]"]}
EOL
chef-client -j /etc/chef/firstboot.json > /tmp/initialize_client.log 2>&1
基本上,我創建一個以.json文件,在那裏我會指定配方/角色/ run_list我想運行。一旦你提供了用戶數據,它將在第一次啓動時執行,並且chef-client將與run_list一起運行。
我想這就是你要找的。 這樣總結:
- 與創建AMI預裝
chef-client, client.rb and validation.pem
- ,然後在實例啓動時提供
user-data
。
這對我來說非常合適。讓我知道這個設置是否會給你帶來麻煩。我一直在使用它很長一段時間。
因此,當我使用自動縮放啓動我的實例時,它會自動隨着我選擇的食譜自動啓動廚師。
假設: 在完成此操作之前,您已擁有在廚師服務器上創建的所有食譜/角色。否則引導程序最終會失敗。
相關問題
- 1. 廚師部署?
- 2. 廚師部署建議/ scenerio
- 3. 如何使用廚師的部署資源部署更改?
- 4. 廚師和應用程序部署
- 5. 廚師:詹金斯超市食譜自動化作業部署
- 6. 如何啓動測試廚師服務器來測試使用廚師的廚師自動化
- 7. 廚師獨奏:部署:訪問release_path
- 8. 使用廚師食譜的Rails應用程序部署
- 9. 使用廚師
- 10. 使用廚師
- 11. 使用廚師
- 12. 使用廚師進行iis 8.5安裝的Web部署
- 13. 是廚師自動化和廚師交付一樣嗎?
- 14. 使用廚師從Sonatype Nexus部署MSI包
- 15. 如何使用廚師部署大尺寸文件
- 16. 如何使用廚師實現零停機時間部署?
- 17. 用於將服務部署到Cloud Foundry的廚師?
- 18. 插在PHP的廚師自動化
- 19. 在廚師中使用自定義LWRP
- 20. 廚師 - NoMethodError在廚師::資源::應用
- 21. 廚師部門/ rspec測試中的模擬廚師:: ReservedNames :: Win32 :: Version.new?
- 22. Firefox安裝使用的廚師與廚師超市選項
- 23. 動態使用廚師配方
- 24. 廚師自動更新配置
- 25. Azure廚師自動化入門套件
- 26. 如何在廚師中自動化mysql_secure_installation
- 27. 烹飪書或食譜可以部署/運行與廚師的Web用戶界面(管理廚師)?
- 28. 在windows中進行大規模web部署的廚師
- 29. 在廚師部署的Nginx服務器中擴展MIME類型
- 30. 螞蟻與廚師之間的部署/構建工具
你好@slayedbylucifer聽起來很神奇!我會盡快嘗試,並保持更新 –
嗨我嘗試了你建議的過程,但啓動ec2實例後,它會拋出一個錯誤無法驗證廚師服務器(HTTP 401)。 服務器響應: ---------------- 無法驗證爲'ip-10-128-94-138.ap-southeast-1.compute.internal'。確保您的node_name和客戶端密鑰是正確的。 如果這些設置正確,您的client_key可能無效。 我該如何調試它,以及會出現什麼問題。 –
當主廚客戶端第一次運行時,它會自己創建client.pem。在任何之前的廚師客戶端運行中,您的映像中是否有客戶端.pem?另外,您是否在節點上覆制了validation.pem密鑰? – slayedbylucifer