上下文
我正在进行两阶段部署
使用terraform
使用厨师配置EC2实例
问题:
假设我使用Terraform在AWS中创建RDS实例,如下所示:
void permute_next(vector<int>& v)
{
if (v.size() < 2)
return;
if (v.size() == 2)
{
int tmp = v[0];
v[0] = v[1];
v[1] = tmp;
return;
}
// Step 1: find first ascending-ordered pair from right to left
int i = v.size()-2;
while(i>=0)
{
if (v[i] < v[i+1])
break;
i--;
}
if (i<0) // vector fully sorted in descending order (last permutation)
{
//resort in ascending order and return
sort(v.begin(), v.end());
return;
}
// Step 2: swap v[i] with next higher element of remaining elements
int pos = i+1;
int val = v[pos];
for(int k=i+2; k<v.size(); k++)
if(v[k] < val && v[k] > v[i])
{
pos = k;
val = v[k];
}
v[pos] = v[i];
v[i] = val;
// Step 3: sort remaining elements from i+1 ... end
sort(v.begin()+i+1, v.end());
}
我将如何:
随机生成密码字符串(即上面使用的方法) 适当)
&#34;通行证&#34;以安全的方式将密码字符串转换为EC2实例上的db.properties文件(目前我将db.properties文件作为模板在厨师食谱中管理)
以纯文本形式输入密码(对于手动数据库 故障排除和配置)。
答案 0 :(得分:0)
天真的选择是在Terraform内的Chef配置器上使用attributes_json
参数。这会导致密码在一些不幸的地方以明文形式存储,但最好将其存储在SSM Paramstore或S3之类的东西中,然后让Chef使用实例的IAM凭据来检索它。另外请记住,您可能不希望为该实例提供root帐户/密码,您希望为具有较低权限的应用程序创建用户。