簡體   English   中英

OpsWorks廚師將自定義json部署到php

[英]OpsWorks chef deploy custom json to php

我正在嘗試在部署實例時將敏感的應用程序配置數據傳遞給實例,例如數據庫連接信息。

繼承自定義堆棧json字符串

{
  "deploy": {
    "development": {
      "app" : {
        "api_key" : "data",
        "api_secret" : "data",
        "gmail_account" : "data",
        "gmail_account_password" : "data"
      },
      "database" : {
        "db_hostname" : "data",
        "db_username" : "data",
        "db_password" : "data",
        "db_database" : "data"
      }
    }
  }
}

我有這樣的回購設置

配方/appsetup.rb

node[:deploy].each do |application, config|
  template "#{deploy[:deploy_to]}/current/config.php" do
    source "config.php.erb"
    mode 0660
    group deploy[:group]

    if platform?("ubuntu")
      owner "www-data"
    elsif platform?("amazon")   
      owner "apache"
    end

    variables(
      :api_key    => (deploy[:app][:api_key] rescue nil),
      :api_secret => (deploy[:app][:api_secret] rescue nil),
      :gmail_account          => (deploy[:app][:gmail_account] rescue nil),
      :gmail_account_password => (deploy[:app][:gmail_account_password] rescue nil),
      :db_hostname => (deploy[:database][:db_hostname] rescue nil),
      :db_username => (deploy[:database][:db_username] rescue nil),
      :db_password => (deploy[:database][:db_password] rescue nil),
      :db_database => (deploy[:database][:db_database] rescue nil)
    )
  end
end

然后是位於template / default / config.php.erb的php模板

$config = array();
$config['api_key'] = '<%= @api_key%>';
$config['api_secret'] = '<%= @api_secret%>';
$config['gmail_account'] = '<%= @gmail_account%>';
$config['gmail_account_password'] = '<%= @gmail_account_password%>';

$db = array();
$db['default']['hostname'] = '<%= @db_hostname%>';
$db['default']['username'] = '<%= @db_username%>';
$db['default']['password'] = '<%= @db_password%>';
$db['default']['database'] = '<%= @db_database%>';

我將在“自定義廚師食譜部署”下放什么? 我已經嘗試了很多東西,但似乎無法加載食譜。

您的存儲庫設置似乎已配置為包含一個食譜。 OpsWorks要求您的“自定義食譜”存儲庫包含一系列食譜。

查看官方的AWS OpsWorks Cookbooks文件夾結構: https : //github.com/aws/opsworks-cookbooks

在您的情況下:

  1. 在您的倉庫中創建一個新文件夾,並提供一個描述配方功能的名稱。 在此示例中,我們將文件夾稱為“ php_app_config”。
  2. 將您的配方和模板移到該文件夾​​中,從而從存儲庫的底部獲得以下路徑:
    • php_app_config / recipes / appsetup.rb
    • php_app_config / templates / default / config.php.erb
  3. 將更改提交到遠程存儲庫,並指示現有的OpsWorks實例下載最新的自定義食譜
  4. 在圖層的“自定義廚師食譜”中,使用以下名稱將食譜添加到“部署生命周期”事件中:php_app_config :: appsetup
  5. 部署您的應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM