-
Notifications
You must be signed in to change notification settings - Fork 0
Setup gitolite on SELinux
razy-dev edited this page Mar 31, 2016
·
20 revisions
]$ su - root
]# yum list installed git*
]# yum list git*
]$ su - root
]# yum install git
]$ mkdir /data/git
]$ chmod 777 /data/git
]$ cd /data/git (mkdir first)
]$ mkdir MyRepo.git
]$ cd MyRepo.git
]$ git init --bare --shared
]$ chmod -R 777 .
]$ git clone user@git.hostname:/data/git/MyRepo.git
gitolite setup layout
- GIT REPOSITOYR PATH : /data/git
- GITOLITE ADMIN PATH : /data/git-admin
# git repository user
]# adduser -d /data/git
# set SELinux policy
]# semanage fcontext -a -t user_home_dir_t /data/git
]# semanage fcontext -a -t ssh_home_t "/data/git/.ssh(/.*)?"
]# restorecon -R -v /data/git/.ssh
# gitolite admin user
]# adduser -d /data/git-admin
# set SELinux policy
]# semanage fcontext -a -t user_home_dir_t /data/git-admin
]# semanage fcontext -a -t ssh_home_t "/data/git-admin/.ssh(/.*)?"
]# restorecon -R -v /data/git-admin/.ssh
]$ su - git-admin
]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/data/git-admin/.ssh/id_rsa): [ENTER]
Enter passphrase (empty for no passphrase): [ENTER]
Enter same passphrase again: [ENTER]
Your identification has been saved in /data/git-admin/.ssh/id_rsa.
Your public key has been saved in /data/git-admin/.ssh/id_rsa.pub.
The key fingerprint is:
0d:6e:51:d2:a1:b9:cb:fe:f2:d5:04:2e:25:dd:1a:47 git-admin@your_host_name
The key's randomart image is:
+--[ RSA 2048]----+
| ..o. E |
| =.. o |
| = . = o |
| . = + = |
| S o o . |
| o . . o |
| o . . |
| .. . |
| .+o |
+-----------------+
]$ su - git
]$ ssh-keygen -t rsa
...
]$ su - root
]# cp /data/git-admin/.ssh/id_rsa.pub /data/git/.ssh/git-admin.pub
]# chown git:git /data/git/.ssh/git-admin.pub
]$ su - git
]$ cd ~
]$ mkdir ~/bin
]$ git clone https://github.com/sitaramc/gitolite.git
]$ gitolite/install -ln
]$ gitolite setup -pk .ssh/git-admin.pub
]$ ls -al
drwxrwxr-x. 2 git git 4096 Mar 21 18:01 bin
drwxr-xr-x. 6 git git 4096 Mar 21 17:44 gitolite # gitolite install(clone) path
drwx------. 6 git git 4096 Mar 21 18:03 .gitolite # gitolite admin
-rw-------. 1 git git 6998 Mar 21 18:03 .gitolite.rc
-rw-------. 1 git git 12 Mar 21 18:03 projects.list
drwx------. 4 git git 4096 Mar 21 18:03 repositories # git repository path
drwx------. 2 git git 4096 Mar 21 18:03 .ssh
- check gitolite shell
]$ su - git-admin
]$ ssh git@localhost info
hello git-admin, this is git@your_host_name running gitolite3 v3.6.5-2-g98c167b on git 1.7.1
R W gitolite-admin
- if not. check .ssh/authorized_keys.
]$ su - git
]$ vi ~/.ssh/authorized_keys
# gitolite start
command="/data/git/gitolite/src/gitolite-shell git-admin", ....
.....
# gitolite end
remove all text, except for '# gitolite start ~ # gitolite end'
]$ su - git-admin
]$ cd ~
]$ git clone git@localhost:gitolite-admin.git
]$ su - git-admin
]$ cd ~/gitolite-admin
]$ git pull
]$ cp userid.pub ~/gitolite-admin/keydir
]$ git add userid.pub
]$ git commit -a -m"add uesr 'userid'"
]$ git push origin master
]$ su - git-admin
]$ cd ~/gitolite-admin
]$ git pull
]$ vi ~/gitolite-admin/conf/gitolite.conf
repo gitolite-admin
RW+ = git-admin
...
# create new repository
repo new_repository
RW+ = userid
...
]$ git commit -a -m"create repository 'new_repository'"
]$ git push
]$ su - git-admin
]$ cd ~/gitolite-admin
]$ git pull
]$ vi ~/gitolite-admin/conf/gitolite.conf
...
repo gitolite-admin
RW+ = git-admin
RW+ = userid
...
]$ git commit -a -m"Add User to Admin"
]$ git push
]$ su - git-admin
]$ cd ~/gitolite-admin
]$ git pull
]$ vi ~/gitolite-admin/conf/gitolite.conf
...
@admin = git-admin user1 user2 ...
...
@MyRepos = MyRepo1
@MyRepos = MyRepo2
@MyRepos = MyRepo3
...
repo gitolite-admin
RW+ = @admin
...
repo @MyRepos
RW+ = user
RW+ = @Group
...
]$ git commit -a -m"Modify User & repo"
]$ git push
-
Adjust your PATH environment
select "Run Git from Windows Command Prompt"
-
Configuring the line ending conversions
select "Checkout Windows-style, commit Unix-style line endings"
-
[RUN] Git Bash
-
SSH Key gen
]$ ssh-keygen -t rsa (key created at C:\Users\USER_ID\.ssh) ...
-
Copy ssh key to git-admin
It's assumed that already setup git & gitolite on Linux Server.
If not. see Setup-gitolite-on-SELinux#3-copy-git-admins-public-keyid_rsapub-to-gits-home and clone gitolite-admin to Windows.]$ scp ./id_rsa.pub git-admin@hostname:/data/git-admin/gitolite-admin/keydir/userid.pub
-
gitolite-admin Commit & push on Linux