<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Snooda]]></title> 
<link>http://www.snooda.com/index</link> 
<description><![CDATA[Snooda's Blog]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Snooda]]></copyright>
<item>
<link>http://www.snooda.com/read/</link>
<title><![CDATA[gitlab使用samba/cifs作为存储]]></title> 
<author>snooda &lt;admin@snooda.com&gt;</author>
<category><![CDATA[默认分类]]></category>
<pubDate>Thu, 16 Sep 2021 18:14:10 +0000</pubDate> 
<guid>http://www.snooda.com/read/</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;gitlab默认是无法直接使用cifs挂载作为数据存储目录的，不过经过一些小小的移植，可以实现正常运行。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;1，关注.ssh/authorzed_keys，由于cifs挂载默认使用同样的权限，而.ssh/authorized_keys分别要求目录是700，文件是600权限，所以默认会导致推送代码时公钥认证失败，一般对.ssh目录额外进行一个挂载即可，挂载参数添加file_mode=0600,dir_mode=0700。另外该目录所有人需要是gitlab-shell指定的用户，默认为git，需要查询git在/etc/passwd内的uid，/etc/group中的gid，指定uid=xxx,gid=yyy。（同样适用于docker内）。<br/>&nbsp;&nbsp;&nbsp;&nbsp;2，关注repositories，默认迁移后会发现一个诡异的问题，就是提交代码可以成功，代码库也可以看到新代码，但是push events没有更新。其实是因为gitlab的hooks默认是软链，迁移至samba后，被屏蔽掉了，这里推荐gitlab自带的check工具（scripts目录下），可以检查每个仓库的hooks是否正常安装了。如果提示hooks有问题，那么直接ln -s是不行的，需要在挂载参数里添加mfsymlinks，启用软链支持，然后需要在samba server上将原有软链删除掉（如果不删除，则client端既看不到软链，但创建时又提示存在），再使用ln -s重新修复hook即可，此时可以看到，samba server是使用一个特殊文件来存储软链信息的。理论上对于所有的软链，迁移至samba后都要进行这个修复。<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp; 修复后，就可以使用了。<br/>Tags - <a href="http://www.snooda.com/tags/gitlab/" rel="tag">gitlab</a> , <a href="http://www.snooda.com/tags/samba/" rel="tag">samba</a> , <a href="http://www.snooda.com/tags/cifs/" rel="tag">cifs</a>
]]>
</description>
</item><item>
<link>http://www.snooda.com/read/#blogcomment</link>
<title><![CDATA[[评论] gitlab使用samba/cifs作为存储]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.snooda.com/read/#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>