Это хорошая практика, чтобы добавить узлы и папку клиента в шаблон сервера Chef
Я все еще учусь о шеф-поваре. Я загрузил и загрузил свой шаблон сервера в удаленный репозиторий. Но мне интересно, если это безопасно, чтобы добавить nodes
каталог для remote
хранилище, так как оно содержит точный сервер passwords
Вот пример узла
{
"environment":"production",
"authorization": {
"sudo": {
// The password for the depliy user is set in data_bags/users/deploy.json
// and should be generated using:
// openssl passwd -1 "plaintextpassword"
"users": ["deploy", "vagrant"]
}
},
"vagrant" : {
"exclusions" : [],
"name" : "rails-postgres-redis1",
"ip" : "192.168.50.4"
},
"rbenv":{
"rubies": [
"2.1.2"
],
"global" : "2.1.2",
"gems": {
"2.1.2" : [
{"name":"bundler"}
]
}
},
"monit": {
"notify_emails" : ["email@example.com"],
"enable_emails" : false,
"web_interface" : {
// the plaintext monit username and password
"allow" : ["your_username","your_password"]
},
"mailserver" : {
"host" : "mailserver.example.com",
"port" : "999",
"username" : "your_username",
"password" : "your_password",
"hostname" : "the_hostname"
}
},
"postgresql" : {
"password" : {
// this should be generated with:
// openssl passwd -1 "plaintextpassword"
// currently test
"postgres" : "$1$mMK9HNoN$r42n7Q8fKsZabbknlT1Zt1"
}
},
"run_list":
[
"role[server]",
"role[nginx-server]",
"role[postgres-server]",
"role[rails-app]",
"role[redis-server]",
]
}
Поскольку пароли видны, безопасно ли добавлять вот так?
Если он должен быть в gitignore, то на более позднем этапе, если мы клонируем из удаленного репозитория, нам нужно загрузить сервер с нуля, так как не существует никакого каталога узла, верно?
Есть ли лучший способ или я что-то здесь упускаю?
1 ответ
Вам не нужно копировать файлы json узла для начальной загрузки узла. Защищенные данные должны поступать из Chef Vault/Hashicorp Vault/ любого другого безопасного хранилища. Неконфиденциальные данные могут быть частью рецепта / рецепта оболочки / роли / среды / и т. Д., Которые могут храниться в хранилище. Если у вас действительно есть данные, относящиеся к одному узлу, вы можете передать их, используя -j
во время процесса начальной загрузки.