首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不在Vagrantfile中存储FTP密码(Vagrant推送FTP策略)

问不在Vagrantfile中存储FTP密码(Vagrant推送FTP策略)
EN

Stack Overflow用户
提问于 2017-02-01 09:28:58
回答 3查看 129关注 0票数 1

我正在开发一个小网站。我使用vagrant作为开发环境,并希望使用它来部署到生产环境中。Vagrant docs说有一种Vagrant push FTP策略。

配置:

代码语言:javascript
复制
config.push.define "ftp" do |push|
  push.host = "ftp.company.com"
  push.username = "username"
  push.password = "password"
end

用法:

代码语言:javascript
复制
vagrant push

这对我来说已经足够了,但阻止我的是将ftp主机、用户名和密码存储在Vagrantfile中,这将进入我的版本控制系统,这是一个糟糕的做法。

对于这种情况,你能给出一些解决办法吗?

EN

回答 3

Stack Overflow用户

发布于 2017-02-01 09:38:18

生成哈希密码并存储

代码语言:javascript
复制
openssl passwd -1 "Your_password"
票数 0
EN

Stack Overflow用户

发布于 2017-02-01 16:47:23

我使用配置文件找到了解决方案。Inspired with this question我把我的敏感数据移到了单独的文件里我将其命名为ftp.yml并添加到.gitignore中

ftp.yml

代码语言:javascript
复制
ftp_host: "host"
ftp_user: "username"
ftp_pass: "password"

.gitignore

代码语言:javascript
复制
ftp.yml

Vagrantfile

代码语言:javascript
复制
# 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

它对我来说工作得很好。

票数 0
EN

Stack Overflow用户

发布于 2020-03-13 05:07:33

一个简单的解决方案是使用环境变量。它有一个重要的好处,那就是不用明文存储密码。

Vagrantfile:

代码语言:javascript
复制
config.push.define "ftp" do |push|
  push.host = "ftp.company.com"
  push.username = "username"
  push.password = ENV["FTP_PASSWORD"]
end

并在调用vagrant前在环境变量中导出密码:

代码语言:javascript
复制
export FTP_PASSWORD='super_secret'
vagrant push

就我个人而言,我使用1Password命令行工具从我的vault中检索密码:

代码语言:javascript
复制
export FTP_PASSWORD=$(op get item ftp.company.com | jq '.details.fields[] | \
                        select(.designation=="password").value' -r)
vagrant push
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41970465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档