git本地库+群晖配置爬坑记录
鉴于安全原因,决定将云端代码库(托管)全部移到局域网本地库。
已有资源:
centoos 7.6
群晖NAS
由于群晖以SMB共享给centos,设置过程带来无数大大小小的坑。花了两天时间记录下来,分享给需要的童鞋。对于网上能搜到的清楚的过程,仅简单记录命令,不再赘述,重点在于会出现的各种坑。
坑一、centos7.6重启后无法自动连接网络
这个据说是centos7以“安全”为由,重启后默认关闭网卡,修改下配置参数即可:
cd /etc/sysconfig/network-scripts/
vi ifcfg-eth0
ONBOOT=yes
坑二、smb挂载到centos后,重启无法生效
一般修改fstab加入相应mount指令后,重启即可自动挂载,例如:
mount -t cifs -o "username=it,password=123"//NFS_SERVER/IT/git /mnt/git
但是,因网络启动顺序原因(猜的),这种方式重启后无法自动挂载。
解决方案:改用autofs,具体安装过程网上大把,不再赘述。
重点在于auto.master和auto.cifs两个配置文件。最终实例参阅“坑三”。
高能预警——修改fstab后用mount-a验证,切记!否则可能导致无法启动!
坑三(大坑)、smb挂载到centos后,无法创建符号连接
搜索无数次才搞定。直接送上结论——mount时增加mfsymlinks参数
接坑二用autofs,两个文件如下:

按照这个配置,只需要创建/NAS目录,git目录无需创建。
第4步、更新git至2.9.5版本
这步没有碰到坑,命令记录如下:

坑四(超级大坑)、安装gitolite作为权限管理工具
挂载了群晖到/NAS/git后,希望把git相关所有文件都放在这里,于是设置HOME目录为/NAS/git。
无数次试验最终失败!!!
典型的错误是对gitolite-admin进行clone时,提示找不到这个仓库。
高能预警——千万不要用绝对路径去clone!
将NAS目录设置为git用户HOME目录,始终没办法成功把gitolite-admin库clone出来。如有高手能解决这个问题,请赐教!
主要原因可能是NAS通过cifs挂载后,所有chown命令虽然能成功执行,但文件属主仍然是root,导致gitolite出现各种莫名其妙的错误。
第6步、使用共享群晖存放代码仓库
直接把/NAS/git挂载目录作为git的HOME目录,失败!不过变通解决方案还是找到了:

将repositories目录通过软连接(ln -s)实际指向群晖共享盘挂载目录。