管理Git repositories和SSH keys

Managing Git repositories and SSH keys

在tsuru中有两种方式:使用git push和tsuru app-deploy。前者是可选的,而后者是一直可用的。本文档关注于使用Git部署方式。

为了允许tsuru使用者使用git push来部署,tsuru管理员需要安装和配置Gandalf(install and configure Gandalf)。

Gandalf会存储和管理所有的Git仓库和SSH keys,还有用户。当tsuru被配置为使用Gandalf,在下面的操作中它会与Gandalf API交互:

  • 当在tsuru中创建一个新的用户,相应的用户会在Gandalf中创建。
  • 当从tsuru中删除一个用户,相应的用户会从Gandalf中删除。
  • 当在tsuru中创建一个app,app的新的仓库会在Gandalf中创建。在拥有app的team中所有的用户会被授权来访问仓库。
  • 当删除一个app,相应的仓库会被从Gandalf中删除。
  • 当向tsuru中的team增加用户时,在Gandalf中相应的用户会接入匹配team接入的应用的所有仓库。
  • 当从tsuru中的team删除用户时,因为他的离开,在Gandalf中相应的用户会失去接入那些他接入过的仓库。(此处翻译不当)
  • 当向tsuru中的应用增加一个team,team中的所有用户会得到接入匹配app的仓库。
  • 当从tsuru中的应用删除应用,team中的所有用户会失去接入到仓库,除非他们在另外的可以接入到应用的team。
    当用户执行git push时,如果用户host和Gandalfhost碰巧有通信,Gandalf会通知tsuru使用git hook的新部署。

管理SSH public keys

为了可以向Git server发送git push请求,用户需要有在Gandalf中注册的key。当Gandalf被启用时,tsuru会使用三个命令来管理SSH public keys:

  • tsuru key-add
  • tsuru key-remove
  • tsuru key-list
    三个命令中的每个都有相应的API,tsuru的其他客户端也可以通过API管理keys。

tsuru不会存储任何的public key数据,所有和SSH key相关的数据可以被Gandalf单独管理。当Gandalf不被启用时,这些key命令不能用。

把Gandalf到已经存在的tsuru集群

在没有Gandalf 的老的tsuru集群场景中,注册在tsuru中的用户和应用在新创建的Gandalf server中不可用,或者两种server可能不能同步。

当Gandalf被启用,云管理员可以执行tsr gandalf-sync命令。

原文: http://doc.oschina.net/tsuru-paas?t=52802