<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.ipnp.su/index.php?action=history&amp;feed=atom&amp;title=Gitolite</id>
		<title>Gitolite - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.ipnp.su/index.php?action=history&amp;feed=atom&amp;title=Gitolite"/>
		<link rel="alternate" type="text/html" href="http://wiki.ipnp.su/index.php?title=Gitolite&amp;action=history"/>
		<updated>2026-04-19T08:30:32Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.27.4</generator>

	<entry>
		<id>http://wiki.ipnp.su/index.php?title=Gitolite&amp;diff=1838&amp;oldid=prev</id>
		<title>Andy: Новая страница: «=== Установка и настройка Gitolite3 === Для разработок программистов и для системных администр…»</title>
		<link rel="alternate" type="text/html" href="http://wiki.ipnp.su/index.php?title=Gitolite&amp;diff=1838&amp;oldid=prev"/>
				<updated>2014-04-10T08:01:30Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «=== Установка и настройка Gitolite3 === Для разработок программистов и для системных администр…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=== Установка и настройка Gitolite3 ===&lt;br /&gt;
Для разработок программистов и для системных администраторов, что бы базу данных с паролями хранить.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Исходные условия: ====&lt;br /&gt;
# CentOS x64 6.5 с установленным дополнительным репозиторием [http://fedora-mirror01.rbc.ru/pub/epel/6/i386/epel-release-6-6.noarch.rpm EPEL]&lt;br /&gt;
&lt;br /&gt;
 # yum install gitolite3&lt;br /&gt;
&lt;br /&gt;
==== Настройка ==== &lt;br /&gt;
&lt;br /&gt;
Администратор репозиториев будет ''root'', поэтому создаем ключик:&lt;br /&gt;
&lt;br /&gt;
 # ssh-keygen -vt rsa&lt;br /&gt;
&lt;br /&gt;
Важное замечание - администратор репозиториев, в нашем случае ''root'', '''не должен подключаться на сервер по ключу'''. Если это происходит, то следует [http://www.karan.org/blog/index.php/2009/08/25/multiple-ssh-private-keys создать еще один ключ].&lt;br /&gt;
&lt;br /&gt;
В процессе создания ключа, программа спросить passphrase. Добавить &lt;br /&gt;
по вкусу.&lt;br /&gt;
Затем копируем публичный ключ в домашнюю директорию gitolite3:&lt;br /&gt;
&lt;br /&gt;
 # cp /root/.ssh/id_rsa.pub /var/lib/gitolite3/&lt;br /&gt;
&lt;br /&gt;
И присваиваем права на ключик пользователю gitolite3:&lt;br /&gt;
&lt;br /&gt;
 # chown gitolite3:gitolite3 /var/lib/gitolite3/id_rsa.pub&lt;br /&gt;
&lt;br /&gt;
От пользователя gitolite3 инициализируем репозиторий:&lt;br /&gt;
&lt;br /&gt;
 -bash-4.1$ gitolite setup --pubkey id_rsa.pub&lt;br /&gt;
 Initialized empty Git repository in /var/lib/gitolite3/repositories/gitolite-admin.git/&lt;br /&gt;
 Initialized empty Git repository in /var/lib/gitolite3/repositories/testing.git/&lt;br /&gt;
 -bash-4.1$&lt;br /&gt;
&lt;br /&gt;
Вывод должен быть примерно такой, как выше, без warning'ов. &lt;br /&gt;
Теперь, из под учетной записи администратора репозиториев (в нашем случае ''root''),&lt;br /&gt;
клонируем репозиторий:&lt;br /&gt;
&lt;br /&gt;
 # git clone gitolite3@172.20.20.118:gitolite-admin.git&lt;br /&gt;
 Initialized empty Git repository in /root/gitolite-admin/.git/&lt;br /&gt;
 /var/lib/gitolite3/.bashrc: line 10: bind: warning: line editing not enabled&lt;br /&gt;
 /var/lib/gitolite3/.bashrc: line 11: bind: warning: line editing not enabled&lt;br /&gt;
 remote: Counting objects: 6, done.&lt;br /&gt;
 remote: Compressing objects: 100% (4/4), done.&lt;br /&gt;
 remote: Total 6 (delta 0), reused 0 (delta 0)&lt;br /&gt;
 Receiving objects: 100% (6/6), done.&lt;br /&gt;
 #&lt;br /&gt;
&lt;br /&gt;
Если же администратор репозитория имеет другие названия ключей, например&lt;br /&gt;
''gitoliteadmin'', то необходимо указать ssh, какие конкретно ключи для каких&lt;br /&gt;
хостов стоит применять. Не следует забывать выставить права ''600'' на файл ''config'':&lt;br /&gt;
&lt;br /&gt;
 # cat .ssh/config &lt;br /&gt;
 Host nms-heater1.zzz.ru&lt;br /&gt;
 	HostName nms-heater1.zzz.ru&lt;br /&gt;
 	IdentityFile ~/.ssh/gitoliteadmin&lt;br /&gt;
 	User gitolite3&lt;br /&gt;
&lt;br /&gt;
 # ls -lahi .ssh/config&lt;br /&gt;
 1572882 -rw------- 1 root root 105 Mar 20 09:22 .ssh/config&lt;br /&gt;
 #&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Разумеется, что резолвинг доменных имен должнен быть настроен предаварительно.&lt;br /&gt;
У пользователя ''root'' в наличии репозиторий, где хранится конфигурационный файл&lt;br /&gt;
с настройками доступов пользователей к репозиториям и бранчам:&lt;br /&gt;
&lt;br /&gt;
 # ls -lahi /root/gitolite-admin/conf/&lt;br /&gt;
 total 12K&lt;br /&gt;
 1572943 drwxr-xr-x 2 root root 4.0K Feb 20 09:44 .&lt;br /&gt;
 1572905 drwxr-xr-x 5 root root 4.0K Feb 20 09:39 ..&lt;br /&gt;
 1572944 -rw-r--r-- 1 root root   78 Feb 20 09:39 gitolite.conf&lt;br /&gt;
 #&lt;br /&gt;
&lt;br /&gt;
и директория, где хранятся пользовательские ключи (собственно это и&lt;br /&gt;
есть сами виртуальные пользователи).&lt;br /&gt;
&lt;br /&gt;
==== Добавление пользователя ====&lt;br /&gt;
&lt;br /&gt;
Пользователь создал публичный и приватный ключи, теперь копируем их на сервер.&lt;br /&gt;
Далее, ключи следует положить в директорию администратора репозиториев:&lt;br /&gt;
&lt;br /&gt;
 # cp /home/andy/andy.pub /root/gitolite-admin/keydir/&lt;br /&gt;
&lt;br /&gt;
Затем добавить файл в репозиторий:&lt;br /&gt;
&lt;br /&gt;
 # pwd&lt;br /&gt;
 /root/gitolite-admin&lt;br /&gt;
 # git add /root/gitolite-admin/keydir/avedischev.pub&lt;br /&gt;
&lt;br /&gt;
Проверим добавился ли наш ключ:&lt;br /&gt;
&lt;br /&gt;
 # echo $?&lt;br /&gt;
 0&lt;br /&gt;
 # git status&lt;br /&gt;
 # On branch master&lt;br /&gt;
 # Changes to be committed:&lt;br /&gt;
 #   (use &amp;quot;git reset HEAD &amp;lt;file&amp;gt;...&amp;quot; to unstage)&lt;br /&gt;
 #&lt;br /&gt;
 #	new file:   keydir/avedischev.pub&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
&lt;br /&gt;
Теперь делаем комит и отправляем файл в репозиторий:&lt;br /&gt;
&lt;br /&gt;
 # git commit -av -m &amp;quot;Andrew Vedischev's key has been added&amp;quot;&lt;br /&gt;
 [master bcd899e] Andrew Vedischev's key has been added&lt;br /&gt;
  Committer: root &amp;lt;root@nms-heater1.zzz.ru&amp;gt;&lt;br /&gt;
 Your name and email address were configured automatically based&lt;br /&gt;
 on your username and hostname. Please check that they are accurate.&lt;br /&gt;
 You can suppress this message by setting them explicitly:&lt;br /&gt;
 &lt;br /&gt;
     git config --global user.name &amp;quot;Your Name&amp;quot;&lt;br /&gt;
     git config --global user.email you@example.com&lt;br /&gt;
 &lt;br /&gt;
 If the identity used for this commit is wrong, you can fix it with:&lt;br /&gt;
 &lt;br /&gt;
     git commit --amend --author='Your Name &amp;lt;you@example.com&amp;gt;'&lt;br /&gt;
 &lt;br /&gt;
  1 files changed, 1 insertions(+), 0 deletions(-)&lt;br /&gt;
  create mode 100644 keydir/avedischev.pub&lt;br /&gt;
 #&lt;br /&gt;
 # git push --all -v&lt;br /&gt;
 Pushing to gitolite3@nms-heater1.zzz.ru:gitolite-admin.git&lt;br /&gt;
 Counting objects: 6, done.&lt;br /&gt;
 Delta compression using up to 4 threads.&lt;br /&gt;
 Compressing objects: 100% (4/4), done.&lt;br /&gt;
 Writing objects: 100% (4/4), 710 bytes, done.&lt;br /&gt;
 Total 4 (delta 0), reused 0 (delta 0)&lt;br /&gt;
 To gitolite3@nms-heater1.zzz.ru:gitolite-admin.git&lt;br /&gt;
    be46d3e..bcd899e  master -&amp;gt; master&lt;br /&gt;
 #&lt;br /&gt;
&lt;br /&gt;
Подробный вывод предыдущих команд показан для наглядности, &lt;br /&gt;
в реальности, быть пожет, некоторые ключи не потребуются.&lt;br /&gt;
После этого правим  конфигурационный файл:&lt;br /&gt;
&lt;br /&gt;
 # cat /root/gitolite-admin/conf/gitolite.conf&lt;br /&gt;
 repo gitolite-admin&lt;br /&gt;
     RW+     =   gitoliteadmin&lt;br /&gt;
 &lt;br /&gt;
 repo testing&lt;br /&gt;
     RW+     =   @all&lt;br /&gt;
 &lt;br /&gt;
 repo kesspassx&lt;br /&gt;
     RW+     =   avedischev&lt;br /&gt;
 &lt;br /&gt;
 #&lt;br /&gt;
&lt;br /&gt;
Так же отправляем измененый файл конфигурации в репозиторий:&lt;br /&gt;
 &lt;br /&gt;
 # git add /root/gitolite-admin/conf/gitolite.conf &lt;br /&gt;
 # git commit -a -m &amp;quot;keepassx repo has been added&amp;quot;&lt;br /&gt;
 [master 077bab1] keepassx repo has been added&lt;br /&gt;
  Committer: root &amp;lt;root@nms-heater1.zzz.ru&amp;gt;&lt;br /&gt;
 Your name and email address were configured automatically based&lt;br /&gt;
 on your username and hostname. Please check that they are accurate.&lt;br /&gt;
 You can suppress this message by setting them explicitly:&lt;br /&gt;
 &lt;br /&gt;
     git config --global user.name &amp;quot;Your Name&amp;quot;&lt;br /&gt;
     git config --global user.email you@example.com&lt;br /&gt;
 &lt;br /&gt;
 If the identity used for this commit is wrong, you can fix it with:&lt;br /&gt;
 &lt;br /&gt;
     git commit --amend --author='Your Name &amp;lt;you@example.com&amp;gt;'&lt;br /&gt;
 &lt;br /&gt;
  1 files changed, 3 insertions(+), 0 deletions(-)&lt;br /&gt;
 # git push --all -v&lt;br /&gt;
 Pushing to gitolite3@nms-heater1.zzz.ru:gitolite-admin.git&lt;br /&gt;
 Counting objects: 7, done.&lt;br /&gt;
 Delta compression using up to 4 &lt;br /&gt;
&lt;br /&gt;
Что бы пользователь мог работать с репозиториями, по именному ключу или по разным&lt;br /&gt;
ключам, надо создать файл: ''/home/andy/.ssh/config''&lt;br /&gt;
И привести его к следующему виду:&lt;br /&gt;
&lt;br /&gt;
 IdentityFile ~/.ssh/%u&lt;br /&gt;
&lt;br /&gt;
Либо вписать имя пары ключей, если они не совпадают с именем пользователя.&lt;br /&gt;
Проверяем:&lt;br /&gt;
&lt;br /&gt;
 andy@powercharge:~$ ssh gitolite3@nms-heater1.zzz.ru info&lt;br /&gt;
 hello avedischev, this is gitolite3@nms-heater1 running gitolite3 3.5.3.1-1.el6 on git 1.7.1&lt;br /&gt;
 &lt;br /&gt;
  R W	keepassx&lt;br /&gt;
  R W	testing&lt;br /&gt;
 andy@powercharge:~$&lt;br /&gt;
&lt;br /&gt;
==== Работа с репозиторием ====&lt;br /&gt;
Далее, работаем с репозиторием как обычно. Копируем его на свою машину:&lt;br /&gt;
&lt;br /&gt;
 $ git clone gitolite3@nms-heater1.zzz.ru:keepassx&lt;br /&gt;
 Cloning into 'keepassx'...&lt;br /&gt;
 remote: Counting objects: 3, done.&lt;br /&gt;
 remote: Compressing objects: 100% (2/2), done.&lt;br /&gt;
 remote: Total 3 (delta 0), reused 0 (delta 0)&lt;br /&gt;
 Receiving objects: 100% (3/3), 113.45 KiB | 0 bytes/s, done.&lt;br /&gt;
 Checking connectivity... done.&lt;br /&gt;
&lt;br /&gt;
Копируем файл в наш репозиторий, заходим в директорию нашего репозитория&lt;br /&gt;
&lt;br /&gt;
 $ cp /home/andy/Documents/orange.kdb keepassx/&lt;br /&gt;
 $ cd keepassx/&lt;br /&gt;
 $ ls&lt;br /&gt;
 orange.kdb&lt;br /&gt;
&lt;br /&gt;
Добавляем файл в репозиторий, проверяем обновился ли репозиторий &lt;br /&gt;
и делаем коммит:&lt;br /&gt;
&lt;br /&gt;
 $ git add orange.kdb &lt;br /&gt;
 $ git status&lt;br /&gt;
 On branch master&lt;br /&gt;
 Your branch is up-to-date with 'origin/master'.&lt;br /&gt;
 &lt;br /&gt;
 Changes to be committed:&lt;br /&gt;
   (use &amp;quot;git reset HEAD &amp;lt;file&amp;gt;...&amp;quot; to unstage)&lt;br /&gt;
 &lt;br /&gt;
  	modified:   orange.kdb&lt;br /&gt;
  &lt;br /&gt;
  $ git commit -a -m &amp;quot;initial commit of passwords database&amp;quot;&lt;br /&gt;
  [master 1f02eaa] initial commit of passwords database&lt;br /&gt;
   1 file changed, 0 insertions(+), 0 deletions(-)&lt;br /&gt;
   rewrite orange.kdb (98%)&lt;br /&gt;
  $&lt;br /&gt;
 &lt;br /&gt;
Отправляем изменения в удаленный репозиторий&lt;br /&gt;
&lt;br /&gt;
 $ git push --all -v gitolite3@nms-heater1.zzz.ru:keepassx&lt;br /&gt;
 Pushing to gitolite3@nms-heater1.zzz.ru:keepassx&lt;br /&gt;
 Counting objects: 5, done.&lt;br /&gt;
 Delta compression using up to 4 threads.&lt;br /&gt;
 Compressing objects: 100% (2/2), done.&lt;br /&gt;
 Writing objects: 100% (3/3), 113.48 KiB | 0 bytes/s, done.&lt;br /&gt;
 Total 3 (delta 0), reused 0 (delta 0)&lt;br /&gt;
 To gitolite3@nms-heater1.zzz.ru:keepassx&lt;br /&gt;
    2d1fe3b..1f02eaa  master -&amp;gt; master&lt;br /&gt;
 $&lt;br /&gt;
&lt;br /&gt;
==== Ссылки ====&lt;br /&gt;
*[http://sitaramc.github.com/ Официальный сайт]&lt;br /&gt;
*[http://gitolite.com/gitolite/gitolite.html Документация]&lt;br /&gt;
*[http://git-scm.com/book Книга Pro-Git (есть перевод на русский)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Cеверное ПО]]&lt;/div&gt;</summary>
		<author><name>Andy</name></author>	</entry>

	</feed>