β

当 git 遇上 ansible

PHPor 的Blog 108 阅读

在配置了ansible的机器上启用了ControlPath配置: (这样效率会高一些)

# cat ~/.ssh/config
Host *
  Compression yes
  ServerAliveInterval 60
  ServerAliveCountMax 5
  ControlMaster auto
  ControlPath ~/.ansible/cp/ansible-ssh-%h-%p-%r
  ControlPersist 8h

然而,我还想在这个机器上使用ssh协议的git,这样不用每次都输入密码,然而,我不想使用默认的ssh key,于是在 ~/.ssh/config 中添加如下配置:

Host gitlab
  IdentityFile ~/.ssh/id_rsa.gitlab
  User git

问题来了,如果没有Host * 的配置,git是好使的,有了Host * 的配置就不好使了,测试发现,是因为git不喜欢ControlPath, 然而,我google了一大圈,找不到unset掉ControlPath的方法,只好采用如下方式:

Host *,!gitlab
  Compression yes
  ServerAliveInterval 60
  ServerAliveCountMax 5
  ControlMaster auto
  ControlPath ~/.ansible/cp/ansible-ssh-%h-%p-%r
  ControlPersist 8h

参考:

https://deepzz.com/post/how-to-setup-ssh-config.html

作者:PHPor 的Blog
PHP+Mysql+Apache+Linux
原文地址:当 git 遇上 ansible, 感谢原作者分享。

发表评论