我在 Amazon OpsWorks 中有一个堆栈,在这个堆栈中我有一个 RailsApp 层。该存储库只能通过 https 访问,并受用户名和密码保护。在我的计算机上,我可以通过以下方式克隆存储库:
git clone https://username:[email protected]/repo.git
OpsWorks 抱怨 URL 无效,因为:
有没有办法在 chef 尝试克隆 repo 之前明确设置密码?我读过的所有文章都只是描述了如何缓存凭据,但第一次必须手动输入。我正在寻找一种完全自动化的方法。
有任何想法吗?
答案1
您是否尝试手动克隆存储库?那么.netrc
文件就是一个不错的答案。
OpsWorks 配方在部署为部署用户设置自定义.netrc
文件来处理事件。您可以运行 OpsWorks,而不是手动克隆存储库部署事件可以从 OpsWorks UI 中执行,或者在实例上手动执行(至少从 UI 运行一次之后),使用以下命令opsworks-agent-cli
:
sudo opsworks-agent-cli run_command deploy
答案2
您还可以配置 SSH 密钥,然后通过 SSH 执行 git clone:
git clone --depth 1 [email protected]:MyPathTo/MyRepo.git --branch 1.x --single-branch /var/www/temp