如何使用 saltstack 和 capistrano 使 minion 连接到 git 存储库
How to enable minion to connect to git repository using saltstack and capistrano
我正在尝试使用 saltstack 和 capistrano 在 ec2 上创建 运行 我的 rails 应用程序。
这是我到目前为止已成功完成的内容。
使用 salt cloud 和 salt master 我能够创建一个新的 minion 实例并将应用程序所需的一切设置为 运行 即 ruby、rails、unicorn、mysql 等。
我已经为 capistrano 做了正确的配置。当我尝试部署时,我看到以下错误。
DEBUG [ed84c6ab] Command: ( GIT_ASKPASS=/bin/echo GIT_SSH=/pathto/git-ssh.sh /usr/bin/env git ls-remote -h git@github.com:somehost/somerepo.git )
DEBUG [ed84c6ab] Warning: Permanently added 'github.com,ip' (RSA) to the list of known hosts.
DEBUG [ed84c6ab] Permission denied (publickey).
DEBUG [ed84c6ab] fatal: Could not read from remote repository.
DEBUG [ed84c6ab]
DEBUG [ed84c6ab] Please make sure you have the correct access rights
DEBUG [ed84c6ab] and the repository exists.
DEBUG [ed84c6ab] Finished in 12.600 seconds with exit status 128 (failed).
所以这意味着我的本地 capistrano 能够连接到 minion,但是当它尝试结帐 git 回购时它失败了。
我知道这是因为 minion 的 ssh public 密钥没有添加到 github。
所以目标是。
运行盐云创建实例
运行 salt highstate 安装应用所需的一切
运行 capistrano 部署以启动应用程序
我也想自动化 git集线器授权过程。我的意思是一旦创建了 minion,minion 应该能够克隆 git repo 而无需任何手动干预。
我很困惑这可以通过 capistrano 或 saltstack 完成。
我使用 github ssh 转发来实现这一点。
这是我所做的更改。
为 github
启用 ssh forwarding 的步骤
然后在 capistrano deploy.rb 文件中通过添加 forward_agent: true
配置 ssh 转发
set :ssh_options, {
user: 'user',
auth_methods: %w(publickey),
port: <some port>,
forward_agent: true
}
我正在尝试使用 saltstack 和 capistrano 在 ec2 上创建 运行 我的 rails 应用程序。
这是我到目前为止已成功完成的内容。 使用 salt cloud 和 salt master 我能够创建一个新的 minion 实例并将应用程序所需的一切设置为 运行 即 ruby、rails、unicorn、mysql 等。
我已经为 capistrano 做了正确的配置。当我尝试部署时,我看到以下错误。
DEBUG [ed84c6ab] Command: ( GIT_ASKPASS=/bin/echo GIT_SSH=/pathto/git-ssh.sh /usr/bin/env git ls-remote -h git@github.com:somehost/somerepo.git )
DEBUG [ed84c6ab] Warning: Permanently added 'github.com,ip' (RSA) to the list of known hosts.
DEBUG [ed84c6ab] Permission denied (publickey).
DEBUG [ed84c6ab] fatal: Could not read from remote repository.
DEBUG [ed84c6ab]
DEBUG [ed84c6ab] Please make sure you have the correct access rights
DEBUG [ed84c6ab] and the repository exists.
DEBUG [ed84c6ab] Finished in 12.600 seconds with exit status 128 (failed).
所以这意味着我的本地 capistrano 能够连接到 minion,但是当它尝试结帐 git 回购时它失败了。
我知道这是因为 minion 的 ssh public 密钥没有添加到 github。
所以目标是。 运行盐云创建实例 运行 salt highstate 安装应用所需的一切 运行 capistrano 部署以启动应用程序
我也想自动化 git集线器授权过程。我的意思是一旦创建了 minion,minion 应该能够克隆 git repo 而无需任何手动干预。
我很困惑这可以通过 capistrano 或 saltstack 完成。
我使用 github ssh 转发来实现这一点。 这是我所做的更改。
为 github
启用 ssh forwarding 的步骤然后在 capistrano deploy.rb 文件中通过添加 forward_agent: true
set :ssh_options, {
user: 'user',
auth_methods: %w(publickey),
port: <some port>,
forward_agent: true
}