不在Vagrant文件中存储FTP密码(Vagrant推送FTP策略)
我正在开发一个小网站。我将vagrant用于开发环境,并希望将其用于部署到生产环境。说有流浪者推FTP策略 配置:不在Vagrant文件中存储FTP密码(Vagrant推送FTP策略),vagrant,Vagrant,我正在开发一个小网站。我将vagrant用于开发环境,并希望将其用于部署到生产环境。说有流浪者推FTP策略 配置: config.push.define "ftp" do |push| push.host = "ftp.company.com" push.username = "username" push.password = "password" end 用法: vagrant push 这对我来说已经足够了,但阻止我的是将ftp主机、用户名和密码存储在将要进入我的版本控制系
config.push.define "ftp" do |push|
push.host = "ftp.company.com"
push.username = "username"
push.password = "password"
end
用法:
vagrant push
这对我来说已经足够了,但阻止我的是将ftp主机、用户名和密码存储在将要进入我的版本控制系统的文件中,这是一种糟糕的做法
您能为这种情况提供一些解决方法吗?生成哈希密码并存储它
openssl passwd -1 "Your_password"
生成哈希密码并存储它
openssl passwd -1 "Your_password"
我使用配置文件找到了解决方案,我将敏感数据移动到单独的文件中。我把它叫做
ftp.yml
并添加到.gitignore
ftp.yml
ftp_host: "host"
ftp_user: "username"
ftp_pass: "password"
.gitignore
ftp.yml
流浪汉档案
# loading FTP config
require 'yaml'
settings = YAML.load_file 'ftp.yml'
Vagrant.configure("2") do |config|
# vm config omitted
config.push.define "ftp" do |push|
push.host = settings['ftp_host']
push.username = settings['ftp_user']
push.password = settings['ftp_pass']
end
end
它对我来说很好。我使用配置文件找到了解决方案,我将敏感数据移动到单独的文件中。我把它叫做
ftp.yml
并添加到.gitignore
ftp.yml
ftp_host: "host"
ftp_user: "username"
ftp_pass: "password"
.gitignore
ftp.yml
流浪汉档案
# loading FTP config
require 'yaml'
settings = YAML.load_file 'ftp.yml'
Vagrant.configure("2") do |config|
# vm config omitted
config.push.define "ftp" do |push|
push.host = settings['ftp_host']
push.username = settings['ftp_user']
push.password = settings['ftp_pass']
end
end
这对我来说很好。一个简单的解决方案是使用环境变量。不以明文形式存储密码具有重要的好处 流浪汉档案:
config.push.define "ftp" do |push|
push.host = "ftp.company.com"
push.username = "username"
push.password = ENV["FTP_PASSWORD"]
end
并在调用vagrant之前导出环境变量中的密码:
export FTP_PASSWORD='super_secret'
vagrant push
就我个人而言,我使用1Password命令行工具从我的vault检索密码:
export FTP_PASSWORD=$(op get item ftp.company.com | jq '.details.fields[] | \
select(.designation=="password").value' -r)
vagrant push
一个简单的解决方案是使用环境变量。不以明文形式存储密码具有重要的好处 流浪汉档案:
config.push.define "ftp" do |push|
push.host = "ftp.company.com"
push.username = "username"
push.password = ENV["FTP_PASSWORD"]
end
并在调用vagrant之前导出环境变量中的密码:
export FTP_PASSWORD='super_secret'
vagrant push
就我个人而言,我使用1Password命令行工具从我的vault检索密码:
export FTP_PASSWORD=$(op get item ftp.company.com | jq '.details.fields[] | \
select(.designation=="password").value' -r)
vagrant push