要实现在 Jenkins 中免密码拉取 GitLab 代码并将其部署到多台 PHP 代码服务器上,可以使用 SSH 密钥对进行认证。以下是详细的步骤:
生成 SSH 密钥对:在 Jenkins 服务器上打开终端或命令提示符,并执行以下命令生成 SSH 密钥对:
ssh-keygen -t rsa -b 4096
这将生成 id_rsa 和 id_rsa.pub 两个密钥文件。确保你将密钥文件存储在安全的位置。 2. 添加 SSH 公钥到 GitLab:将生成的SSH 公钥(id_rsa.pub)添加到 GitLab 账户或项目的部署密钥中,以便 Jenkins 可以通过 SSH 访问 GitLab 服务器。具体步骤是: - 登录 GitLab 并导航到你的项目页面。 - 选择 "Settings",然后选择 "Repository"。 - 在 "Deploy Keys" 部分,点击 "Add Deploy Key",并将 SSH 公钥粘贴到 "Key" 字段中。 - 打开 "Write access allowed" 选项(如果需要 Jenkins 可以执行推送操作),然后点击 "Add key"。 3. 添加 SSH 公钥到 PHP 代码服务器:将生成的 SSH 公钥(id_rsa.pub)添加到所有 PHP 代码服务器上,以便 Jenkins 可以通过 SSH 免密码登录。 - 将 id_rsa.pub 的内容复制到 Jenkins 服务器上的剪贴板。 - 使用 SSH 客户端登录到每个 PHP 代码服务器。 - 将 id_rsa.pub 的内容追加到每个服务器上的 `~/.ssh/authorized_keys` 文件中。 ``` cat >> ~/.ssh/authorized_keys # 粘贴 id_rsa.pub 内容并按 `Ctrl + D` 组合键退出编辑。
在 Jenkins 中配置凭证:现在需要在 Jenkins 中配置凭证,以使用 SSH 免密码访问 GitLab 和 PHP 代码服务器。
在 Jenkins 主界面上,点击 "Credentials"。
点击 "System",然后点击 "Global credentials (unrestricted)"。
点击 "Add Credentials"。
配置以下信息:
重复以上步骤为 PHP 代码服务器创建另一个凭证。
脚本中使用 SSH 凭证:最后,将上述的 Jenkins Pipeline 脚本进行更新,以使用刚刚创建的凭证进行 SSH 认证。
credentialsId
参数,将其设置为 GitLab 凭证的 ID,例如:credentialsId: 'gitlab-ssh'
。sshagent
和 sh
步骤,以使用 PHP 代码服务器凭证。将 your_php_code_server_ssh_credentials
替换为 PHP 代码服务器凭证的 ID,例如:your_php_code_server_ssh_credentials
。以上步骤完成后,重新运行 Jenkins Pipeline,现在应该能够通过 GitLab 凭证和 PHP 代码服务器凭证免密码拉取代码并将其部署到指定的服务器上。
标签: 来源:
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。