我有一个服务器example.com
。我需要运行命令来构建Satis。我添加了文件index.php,在其中写了<?php echo (' <command for satis build> ');
。
当我在服务器上执行此命令时,我输入GitLab的登录名和密码。我是在我的用户(user-example
)下进行的。但是,当我在网络浏览器中打开example.com
时,看到一个错误:
主机密钥验证失败。
致命:无法从远程存储库读取。请确保您具有正确的访问权限
并且存储库存在。
发生这种情况是因为脚本在用户www-data
下运行。
因此,我可以为用户user-example
创建ssh密钥并将其用于GitLab,但是我可以为用户www-data
创建ssh密钥吗?是否安全?如果我不应该这样做,如何使用网络浏览器(使用URL)更新Satis?
答案 0 :(得分:0)
您可以在Satis主机上放置一个简单的脚本,该脚本将接受来自Gitlab的Push Event webhooks(但是,如果您不运行自己的gitlab服务器,则必须从gitlab可以访问satis主机)。
您可以从项目的“设置”页面(/ settings / integrations)中设置网络挂钩。填写主机/端口和机密信息,然后选择要接收的事件(对于此“推送事件”就足够了)。除非您具有ssl证书,否则请确保取消选中“启用SSL验证”,否则Webhook将超时。确保在脚本中正在寻找X-Gitlab-Token
标头,并在创建集成时将其值验证为包含在集成中的密钥。
验证后,您实际上不需要关心推送中的内容,因为您所做的只是触发Satis构建。
要注意的一件事是,在版本低于10.6的Gitlab中,默认情况下,禁止通过Webhook访问本地网络。您可以阅读原因以及如何重新启用本地访问here。