为集群上运行轻量级应用而devise的许多服务(Flynn,Deis,Dokku)都遵循Heroku添加git远程的部署标准,并且在你想要构build和/或部署一个应用时推送它。 编译输出发回给发送git push的用户,就在他们的tty中。 我怎样才能build立我自己的服务器与Git和SSH做推动和中继信息回到用户的行动?
我的办公室networking中有一台Ubuntu 12.04服务器,用于托pipe我们的git回购站。 服务器正在运行Gitlab 7.1.1,并且在非标准端口上有SSH。 除了一个例外,它适用于办公室内外的每个人。 例外是托pipe公司托pipe的服务器,所以我只有有限的访问权限。 当我尝试克隆非标准端口上的回购时,超时。 我认为这是因为托pipe公司阻止了出站端口。 为了解决这个问题,我在我的办公室路由器上设置端口转发,将端口22上的传入stream量转发到我在git服务器上的非标准端口。 我通过从Digial Ocean VPS克隆而不指定端口进行testing,并且工作正常。 但有问题的服务器现在给出了以下错误: Access denied. fatal: The remote end hung up unexpectedly git服务器正在注册正在build立的SSH连接,并接受公钥,如/var/log/auth.log所示: Jan 20 15:09:07 gitlab sshd[3043]: Accepted publickey for git from 10.0.1.254 port 60771 ssh2 Jan 20 15:09:07 gitlab sshd[3043]: pam_unix(sshd:session): session opened for user git by (uid=0) Jan 20 15:09:09 gitlab sshd[3162]: […]
我试图通过nginxconfigurationgit-http-backend并且有一些麻烦。 实际结果是,我得到一个PROPFIND请求405错误: 192.168.1.45 – – [22/Feb/2015:16:50:46 +0100] "GET /lw/bla.git/info/refs?service=git-receive-pack HTTP/1.1" 200 0 "-" "git/2.3.0" "-" 192.168.1.45 – – [22/Feb/2015:16:50:46 +0100] "GET /lw/bla.git/HEAD HTTP/1.1" 200 23 "-" "git/2.3.0" "-" 192.168.1.45 – – [22/Feb/2015:16:50:46 +0100] "PROPFIND /lw/bla.git/ HTTP/1.1" 405 172 "-" "git/2.3.0" "-" 版本: Debian GNU / Linux 7.8(wheezy) git版本2.3.0 nginx版本:nginx / 1.6.2 fcgiwrap版本1.0.3 configuration部分: nginx网站configuration server […]
我需要运行SSH服务器并logging任何尝试连接的客户端的IP和公钥(实际上不授予访问权限)。 用例是这样的:我将这个web应用程序部署到远程主机,在构build过程中,从github / bitbucket(git使用ssh使用键)获取一些依赖项。 现在,如果我想要这个托pipe服务器访问一些私人回购,我需要白名单它的公钥,但是主机不提供直接从文件系统读取密钥的访问。 但是我可以把它指向任何SSH主机,它将build立一个连接,大概是分发它的公钥。 我想logging这个。 任何build议感激。
我无法find关于如何备份“实时”git存储库的官方指南。 谷歌的第一个结果,当你search这样的事情是: https://joeyh.name/blog/entry/difficulties_in_backing_up_live_git_repositories/ 即使KDE的浮子也在使用导致灾难的方法: http://jefferai.org/2013/03/29/distillation/ 我可以阅读stackoverflow,serverfault,博客的答案…但在我看来有很多困惑。 而这个魔鬼是在细节:我对“KDE事件”的理解是,他们应该在git clone后运行git fsck ,因为git clone不检查错误(但是,在git手册中也没有…) 那么:备份一个活的git仓库的官方方式是什么? 手册中有关备份的内容?
build立 在Docker容器( C1 )中有一台主机( H1 )运行gitlab-ce git服务器。 主机的OpenSSH服务器在端口22上运行,并提供主机密钥keyH 。 gitlab容器提供自己的SSH服务,发布到像10022:22这样的主机,并提供一个自己的主机密钥keyC 。 问题 在一个单独的客户端系统上,当调用git clone git@H1:10022/<group>/<project>我希望能够连接到容器C1内的SSH服务器。 事实上,我只能连接到主机H1 ,我得到了keyH (看起来主机的22号端口用于克隆)。 当然,这导致克隆失败。 但 通常(从同一个客户端)拉和推forms这个docker化的git服务器工作时定义一个远程像: git remote -v origin ssh://git@H1:10022/group/project.git (fetch) origin ssh://git@H1:10022/group/project.git (push) 所以看起来, ssh://git@H1…和git@H1…之间的协议有所不同。 但是我认为git只通过HTTP(S)或SSH进行通信? 这里有什么区别/问题? 平台 Ubuntu 14.04.2(今天上游补丁级别) git客户端1.9.1 gitlab 7.13稳定的官方Dockerfile
如何在GitLab自定义钩子中构buildmeteor应用程序(做'meteor build。')? 自定义挂钩是由用户git运行的,他似乎没有任何可能运行meteor build。 因此,我想将脚本中的用户更改为已知能够构build应用程序的人员。 这是我的bash文件,直到现在: #!/bin/sh # # The deployed directory DEPLOYDIR=/var/www/site/ echo " – Starting checkout" GIT_WORK_TREE="$DEPLOYDIR" git checkout -f echo " – Finished checkout" echo " – Starting meteor build" #not working yet sudo su – nodejs cd "$DEPLOYDIR" meteor build .
所以,我有以下情况:每个项目(例如foo )都有专用用户的服务器,以及作为jenkins用户运行的jenkins服务器。 我为我的foo用户生成了一个SSH密钥对,并将公有的一个作为部署密钥添加到了github回购站。 (我证实我可以用foo用户克隆回购) 在Jenkins中,我使用用户名“foo”和foo的“Global”作用域中的私钥,在“Manage Jenkins”>“Manage Credentials”中将身份validation设置为“带有私钥的SSH用户名”。 所以我configuration了我的Jenkins作业与正确的工作空间 (例如/home/foo/deployment明显拥有用户foo所有权),并使用凭证“foo” 。 对于“源代码pipe理”,我想使用我的回购协议(例如[email protected]:foo / foo.git)的SSHurl。但是,它立即通知我有一个权限问题: Failed to connect to repository : Command "git -c core.askpass=true ls-remote -h [email protected]:foo/foo.git HEAD" returned status code 128: stdout: stderr: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository […]
我一直在AWS EC2托pipe我的应用程序,而且现在我尝试了OpenShift ,我喜欢的是整个部署过程是自动化的,但是我不喜欢定价,因为我知道使用EC2更便宜,因为我可以托pipe许多应用程序在同一台服务器。 我想知道怎样才能在AWS上为我自己的部署模拟OpenShiftstream程?原因很明显,stream程是重复的,每当我想添加一个应用程序时,我都要创build一个新的虚拟主机并指向运行节点。 js / php / python …另外一个我喜欢操作系统的特性是我不需要上传整个项目,实际上,我只需要推动git仓库来部署它。 感谢@BillSchaller,我发现AWS平台提供了完成这件事情的东西,因为CodeCommit, CodeDeploy, CodePipeline, OpsWork等许多服务似乎都做类似的事情CodeCommit, CodeDeploy, CodePipeline, OpsWork这很CodeCommit, CodeDeploy, CodePipeline, OpsWork ……它们是互补的还是互补的什么? 所以这是事情: 什么样的AWS产品适合设置基础架构,以便能够执行以下操作: 创build生成git存储库和虚拟主机configuration的应用程序实例,这些configuration可以与node.js / php / python / java git repo被推送(更新)时更新生产应用程序,如果可能的话有两个状态来处理dev和production 为每个应用设置SSL证书 在这种情况下,哪种AWS产品更适合: 我想决定使用哪个git托pipe(基本上我会使用Upsource,如果不是Bitbucket,最后一个选项是Github的定价原因) 如果可能的话,我想要一个GUI的过程 我喜欢有三个EC2实例(node.js,php / python,java)和一个RDS数据库 注意:我不想为每个应用程序创build一个服务器,我想在同一台服务器上托pipe许多应用程序。
我的PBX系统目前正在运行Elastix 2.5,它已经在三个月前安装和configuration好了。 为了保持目的,我使用了etckeeper来跟踪/etc文件夹中的变化,包括位于Elastix的星号设置文件中的asterisk文件夹。 从那以后一切正常。 我最近有些事情要修改。 而且,通常情况下,我使用Web GUI。 但是,我有一个问题。 我已经改变了Web GUI的设置(甚至是非embedded式的freepbx):添加/删除扩展; 更改密码; 改变inbound路线的目的地等。但是当我完成我的修改,然后Apply changed settings ,一切都仍然是以前一样。 I.诊断进展的两个阶段: 1.重新检查Web Gui和freepbx上的更改: 每一个变化都被保存了(如我所料)。 甚至没有一个错误通知被推高。 asterisk.reload没有任何意义。 2.使用/etc GIT跟踪更改: git status给了我没有任何改变的结果! /etc/asterisk非文件已被修改,每个文件都处于git log的最后一个状态。 我试图手动更改文件:啊, git抛出了更改。 git工作正常。 这些更改在asterisk.reload之后生效。 II。 问题: 目前我不知道从哪里开始诊断。 而我无法弄清楚究竟是什么问题。 请给我一些build议,或经验! 如何解决这个问题? 谢谢! 以下是我的PBX Elastix信息: Kernel Linux(x86_64)-2.6.18-406.el5 Elastix elastix-2.5.0-1 elastix-a2billing-2.1.0-1.gita40e37fefef7ab85999d04298b6e582b41930e7e elastix-a2billing-callback_daemon-2.1.0-1. gita40e37fefef7ab85999d04298b6e582b41930e7e elastix-addons-2.5.0-3 elastix-agenda-2.5.0-3 elastix-asterisk-sounds-1.2.3-1 elastix-email_admin-2.5.0-2 elastix-endpointconfig2-2.5.0-3 elastix-extras-2.5.0-1 elastix-fax-2.5.0-2 elastix-firstboot-2.5.0-2 […]