gitlab-grack 2.0.0.pre → 2.0.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +22 -3
- data/Gemfile +2 -7
- data/Gemfile.lock +8 -17
- data/Makefile +153 -0
- data/Procfile.example +3 -0
- data/README.md +292 -95
- data/Vagrantfile +41 -0
- data/database.yml.example +13 -0
- data/gitlab-openldap/.gitignore +1 -0
- data/gitlab-openldap/Makefile +40 -0
- data/gitlab-openldap/README.md +60 -0
- data/gitlab-openldap/bootstrap.ldif +36 -0
- data/gitlab-openldap/frontend.alt.example.com.ldif +109 -0
- data/gitlab-openldap/frontend.example.com.ldif +109 -0
- data/gitlab-openldap/run-slapd +3 -0
- data/gitlab-openldap/run-slapd-alt +3 -0
- data/redis/redis.conf.example +2 -0
- data/redis/resque.yml.example +2 -0
- data/support/edit-gitlab.yml +11 -0
- metadata +29 -25
- data/.gitmodules +0 -3
- data/.travis.yml +0 -14
- data/CHANGELOG +0 -2
- data/Rakefile +0 -27
- data/examples/dispatch.fcgi +0 -9
- data/grack.gemspec +0 -20
- data/install.txt +0 -60
- data/lib/grack.rb +0 -5
- data/lib/grack/auth.rb +0 -37
- data/lib/grack/bundle.rb +0 -20
- data/lib/grack/server.rb +0 -324
- data/lib/grack/version.rb +0 -3
- data/tests/main_test.rb +0 -239
data/Vagrantfile
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# -*- mode: ruby -*-
|
2
|
+
# vi: set ft=ruby :
|
3
|
+
|
4
|
+
# Please see the Vagrant section in the readme for caveats and tips
|
5
|
+
# https://gitlab.com/gitlab-org/gitlab-development-kit/tree/master#vagrant
|
6
|
+
|
7
|
+
VAGRANTFILE_API_VERSION = "2"
|
8
|
+
|
9
|
+
$apt_reqs = <<EOT
|
10
|
+
apt-get update
|
11
|
+
apt-get -y install git g++ pkg-config
|
12
|
+
apt-get -y install postgresql libpq-dev phantomjs redis-server libicu-dev cmake
|
13
|
+
EOT
|
14
|
+
|
15
|
+
# CentOS 6 kernel doesn't suppose UID mapping (affects vagrant-lxc mostly).
|
16
|
+
$user_setup = <<EOT
|
17
|
+
if [ $(id -u vagrant) != $(stat -c %u /vagrant) ]; then
|
18
|
+
useradd -u $(stat -c %u /vagrant) -m build
|
19
|
+
echo "build ALL=(ALL) NOPASSWD:ALL" | tee /etc/sudoers.d/build
|
20
|
+
DEV_USER=build
|
21
|
+
else
|
22
|
+
DEV_USER=vagrant
|
23
|
+
fi
|
24
|
+
sudo -u $DEV_USER -i bash -c "gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3"
|
25
|
+
sudo -u $DEV_USER -i bash -c "curl -sSL https://get.rvm.io | bash -s stable --ruby"
|
26
|
+
EOT
|
27
|
+
|
28
|
+
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
29
|
+
config.vm.box = "ubuntu/trusty64"
|
30
|
+
config.vm.provision "shell", inline: $apt_reqs
|
31
|
+
config.vm.provision "shell", inline: $user_setup
|
32
|
+
|
33
|
+
config.vm.network "forwarded_port", guest: 3000, host: 3000
|
34
|
+
|
35
|
+
config.vm.provider "lxc" do |v, override|
|
36
|
+
override.vm.box = "fgrehm/trusty64-lxc"
|
37
|
+
end
|
38
|
+
config.vm.provider "virtualbox" do |vb|
|
39
|
+
vb.customize ["modifyvm", :id, "--memory", "2048"]
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
slapd.d/
|
@@ -0,0 +1,40 @@
|
|
1
|
+
gitlab_openldap_root = $(shell pwd)
|
2
|
+
|
3
|
+
default: slapd.d/bootstrap contents alt_contents
|
4
|
+
|
5
|
+
contents: slapd.d/schema slapd.d/example-com
|
6
|
+
alt_contents: slapd.d/schema slapd.d/alt-example-com
|
7
|
+
|
8
|
+
slapd.d:
|
9
|
+
mkdir slapd.d
|
10
|
+
chmod 700 slapd.d
|
11
|
+
|
12
|
+
slapd.d/bootstrap: sbin/slapadd slapd.d
|
13
|
+
sbin/slapadd -n 0 -F slapd.d < bootstrap.ldif
|
14
|
+
touch $@
|
15
|
+
|
16
|
+
slapd.d/schema: sbin/slapadd
|
17
|
+
sbin/slapadd -b 'cn=config' -F slapd.d < etc/openldap/schema/core.ldif
|
18
|
+
sbin/slapadd -b 'cn=config' -F slapd.d < etc/openldap/schema/cosine.ldif
|
19
|
+
sbin/slapadd -b 'cn=config' -F slapd.d < etc/openldap/schema/inetorgperson.ldif
|
20
|
+
sbin/slapadd -b 'cn=config' -F slapd.d < etc/openldap/schema/nis.ldif
|
21
|
+
touch $@
|
22
|
+
|
23
|
+
slapd.d/example-com: sbin/slapadd
|
24
|
+
sbin/slapadd -b 'dc=example,dc=com' -F slapd.d < frontend.example.com.ldif
|
25
|
+
touch $@
|
26
|
+
|
27
|
+
slapd.d/alt-example-com: sbin/slapadd
|
28
|
+
sbin/slapadd -b 'dc=example-alt,dc=com' -F slapd.d < frontend.alt.example.com.ldif
|
29
|
+
touch $@
|
30
|
+
|
31
|
+
clean:
|
32
|
+
rm -rf slapd.d
|
33
|
+
|
34
|
+
openldap-2.4.40:
|
35
|
+
curl -O ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.40.tgz
|
36
|
+
tar zxf openldap-2.4.40.tgz
|
37
|
+
|
38
|
+
sbin/slapadd: openldap-2.4.40
|
39
|
+
cd openldap-2.4.40 && ./configure --prefix=${gitlab_openldap_root} --enable-bdb=no --enable-hdb=no
|
40
|
+
cd openldap-2.4.40 && make -j 2 install
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# Set up an OpenLDAP server for GitLab development
|
2
|
+
|
3
|
+
This is an attempt to set up an OpenLDAP server for GitLab development.
|
4
|
+
|
5
|
+
## Getting it running
|
6
|
+
|
7
|
+
```bash
|
8
|
+
make # compile openldap and bootstrap an LDAP server to run out of slapd.d
|
9
|
+
./run-slapd # stays attached in the current terminal
|
10
|
+
```
|
11
|
+
|
12
|
+
## Repopulate the database
|
13
|
+
```
|
14
|
+
make clean default
|
15
|
+
```
|
16
|
+
|
17
|
+
## Configuring gitlab
|
18
|
+
|
19
|
+
in gitlab.yml do the following;
|
20
|
+
|
21
|
+
```yaml
|
22
|
+
ldap:
|
23
|
+
enabled: true
|
24
|
+
servers:
|
25
|
+
main:
|
26
|
+
label: LDAP
|
27
|
+
host: 127.0.0.1
|
28
|
+
port: 3890
|
29
|
+
uid: 'uid'
|
30
|
+
method: 'plain' # "tls" or "ssl" or "plain"
|
31
|
+
base: 'dc=example,dc=com'
|
32
|
+
user_filter: ''
|
33
|
+
group_base: 'ou=groups,dc=example,dc=com'
|
34
|
+
admin_group: ''
|
35
|
+
```
|
36
|
+
|
37
|
+
alternative database (just using a different base)
|
38
|
+
|
39
|
+
```yaml
|
40
|
+
ldap:
|
41
|
+
enabled: true
|
42
|
+
servers:
|
43
|
+
alt:
|
44
|
+
label: LDAP-alt
|
45
|
+
host: 127.0.0.1
|
46
|
+
port: 3891
|
47
|
+
uid: 'uid'
|
48
|
+
method: 'plain' # "tls" or "ssl" or "plain"
|
49
|
+
base: 'dc=example-alt,dc=com'
|
50
|
+
user_filter: ''
|
51
|
+
group_base: 'ou=groups,dc=example-alt,dc=com'
|
52
|
+
admin_group: ''
|
53
|
+
```
|
54
|
+
|
55
|
+
*Note:* We don't use a bind user for this setup, keeping it as simple as possible
|
56
|
+
|
57
|
+
# TODO
|
58
|
+
|
59
|
+
- integrate into the development kit
|
60
|
+
- figure out how to detect the location of `slapd`; on OS X there is `/usr/libexec/slapd`.
|
@@ -0,0 +1,36 @@
|
|
1
|
+
dn: cn=config
|
2
|
+
objectClass: olcGlobal
|
3
|
+
cn: config
|
4
|
+
|
5
|
+
dn: olcDatabase={0}config,cn=config
|
6
|
+
objectClass: olcDatabaseConfig
|
7
|
+
olcDatabase: {0}config
|
8
|
+
olcRootDN: cn=admin,cn=config
|
9
|
+
# hash for 'password'
|
10
|
+
olcRootPW: {SSHA}A5StgE99fCDUo7AlWas7Nvlyexo0vQfm
|
11
|
+
|
12
|
+
# based on https://help.ubuntu.com/10.04/serverguide/openldap-server.html
|
13
|
+
dn: olcDatabase=ldif,cn=config
|
14
|
+
objectClass: olcDatabaseConfig
|
15
|
+
objectClass: olcLdifConfig
|
16
|
+
olcDatabase: ldif
|
17
|
+
olcSuffix: dc=example,dc=com
|
18
|
+
olcDbDirectory: slapd.d
|
19
|
+
olcRootDN: cn=admin,dc=example,dc=com
|
20
|
+
olcRootPW: password
|
21
|
+
olcLastMod: TRUE
|
22
|
+
olcAccess: to dn.base="" by * read
|
23
|
+
olcAccess: to * by dn="cn=admin,dc=example,dc=com" write by * read
|
24
|
+
|
25
|
+
# based on https://help.ubuntu.com/10.04/serverguide/openldap-server.html
|
26
|
+
dn: olcDatabase=ldif,cn=config
|
27
|
+
objectClass: olcDatabaseConfig
|
28
|
+
objectClass: olcLdifConfig
|
29
|
+
olcDatabase: ldif
|
30
|
+
olcSuffix: dc=example-alt,dc=com
|
31
|
+
olcDbDirectory: slapd.d
|
32
|
+
olcRootDN: cn=admin,dc=example-alt,dc=com
|
33
|
+
olcRootPW: password
|
34
|
+
olcLastMod: TRUE
|
35
|
+
olcAccess: to dn.base="" by * read
|
36
|
+
olcAccess: to * by dn="cn=admin,dc=example,dc=com" write by * read
|
@@ -0,0 +1,109 @@
|
|
1
|
+
# source: https://help.ubuntu.com/10.04/serverguide/openldap-server.html
|
2
|
+
|
3
|
+
# Create top-level object in domain
|
4
|
+
dn: dc=example-alt,dc=com
|
5
|
+
objectClass: top
|
6
|
+
objectClass: dcObject
|
7
|
+
objectclass: organization
|
8
|
+
o: Example Organization
|
9
|
+
dc: Example-alt
|
10
|
+
description: LDAP Example
|
11
|
+
|
12
|
+
# Admin user.
|
13
|
+
dn: cn=admin,dc=example-alt,dc=com
|
14
|
+
objectClass: simpleSecurityObject
|
15
|
+
objectClass: organizationalRole
|
16
|
+
cn: admin
|
17
|
+
description: LDAP administrator
|
18
|
+
# hased value for 'password'
|
19
|
+
userPassword: {SSHA}ICMhr6Jxt5bk2awD7HL7GxRTM3BZ1pFI
|
20
|
+
|
21
|
+
dn: ou=people,dc=example-alt,dc=com
|
22
|
+
objectClass: organizationalUnit
|
23
|
+
ou: people
|
24
|
+
|
25
|
+
dn: ou=groups,dc=example-alt,dc=com
|
26
|
+
objectClass: organizationalUnit
|
27
|
+
ou: groups
|
28
|
+
|
29
|
+
dn: uid=bob,ou=people,dc=example-alt,dc=com
|
30
|
+
objectClass: inetOrgPerson
|
31
|
+
objectClass: posixAccount
|
32
|
+
objectClass: shadowAccount
|
33
|
+
uid: bob
|
34
|
+
sn: Doe
|
35
|
+
givenName: bob
|
36
|
+
cn: bob Doe
|
37
|
+
displayName: bob Doe
|
38
|
+
uidNumber: 1000
|
39
|
+
gidNumber: 10000
|
40
|
+
# hased value for 'password'
|
41
|
+
userPassword: {SSHA}qqLFjamdd1cru4RV815+FiSxh/54rfbd
|
42
|
+
gecos: bob Doe
|
43
|
+
loginShell: /bin/bash
|
44
|
+
homeDirectory: /home/bob
|
45
|
+
shadowExpire: -1
|
46
|
+
shadowFlag: 0
|
47
|
+
shadowWarning: 7
|
48
|
+
shadowMin: 8
|
49
|
+
shadowMax: 999999
|
50
|
+
shadowLastChange: 10877
|
51
|
+
mail: bob.doe@example.com
|
52
|
+
postalCode: 31000
|
53
|
+
l: Toulouse
|
54
|
+
o: Example
|
55
|
+
mobile: +33 (0)6 xx xx xx xx
|
56
|
+
homePhone: +33 (0)5 xx xx xx xx
|
57
|
+
title: System Administrator
|
58
|
+
postalAddress:
|
59
|
+
initials: JD
|
60
|
+
|
61
|
+
dn: uid=alice,ou=people,dc=example-alt,dc=com
|
62
|
+
objectClass: inetOrgPerson
|
63
|
+
objectClass: posixAccount
|
64
|
+
objectClass: shadowAccount
|
65
|
+
uid: alice
|
66
|
+
sn: Jane
|
67
|
+
givenName: alice Jane
|
68
|
+
cn: alice Jane
|
69
|
+
displayName: alice Jane
|
70
|
+
uidNumber: 1001
|
71
|
+
gidNumber: 10001
|
72
|
+
# hased value for 'password'
|
73
|
+
userPassword: {SSHA}qqLFjamdd1cru4RV815+FiSxh/54rfbd
|
74
|
+
mail: alice.jane@example.com
|
75
|
+
gecos: alice
|
76
|
+
loginShell: /bin/bash
|
77
|
+
homeDirectory: /home/alice
|
78
|
+
shadowExpire: -1
|
79
|
+
shadowFlag: 0
|
80
|
+
shadowWarning: 7
|
81
|
+
shadowMin: 8
|
82
|
+
shadowMax: 999999
|
83
|
+
shadowLastChange: 10877
|
84
|
+
postalCode: 31000
|
85
|
+
l: Toulouse
|
86
|
+
o: Example
|
87
|
+
mobile: +33 (0)6 xx xx xx xx
|
88
|
+
homePhone: +33 (0)5 xx xx xx xx
|
89
|
+
title: System Administrator
|
90
|
+
postalAddress:
|
91
|
+
initials: JD
|
92
|
+
|
93
|
+
dn: cn=example,ou=groups,dc=example-alt,dc=com
|
94
|
+
objectClass: posixGroup
|
95
|
+
cn: example
|
96
|
+
gidNumber: 10000
|
97
|
+
|
98
|
+
dn: cn=group-a,ou=groups,dc=example-alt,dc=com
|
99
|
+
objectClass: groupofnames
|
100
|
+
ou: groups
|
101
|
+
cn: group-a
|
102
|
+
member: uid=bob,ou=people,dc=example-alt,dc=com
|
103
|
+
member: uid=alice,ou=people,dc=example-alt,dc=com
|
104
|
+
|
105
|
+
dn: cn=group-b,ou=groups,dc=example-alt,dc=com
|
106
|
+
objectClass: groupofnames
|
107
|
+
ou: groups
|
108
|
+
cn: group-b
|
109
|
+
member: uid=bob,ou=people,dc=example-alt,dc=com
|
@@ -0,0 +1,109 @@
|
|
1
|
+
# source: https://help.ubuntu.com/10.04/serverguide/openldap-server.html
|
2
|
+
|
3
|
+
# Create top-level object in domain
|
4
|
+
dn: dc=example,dc=com
|
5
|
+
objectClass: top
|
6
|
+
objectClass: dcObject
|
7
|
+
objectclass: organization
|
8
|
+
o: Example Organization
|
9
|
+
dc: Example
|
10
|
+
description: LDAP Example
|
11
|
+
|
12
|
+
# Admin user.
|
13
|
+
dn: cn=admin,dc=example,dc=com
|
14
|
+
objectClass: simpleSecurityObject
|
15
|
+
objectClass: organizationalRole
|
16
|
+
cn: admin
|
17
|
+
description: LDAP administrator
|
18
|
+
# hased value for 'password'
|
19
|
+
userPassword: {SSHA}ICMhr6Jxt5bk2awD7HL7GxRTM3BZ1pFI
|
20
|
+
|
21
|
+
dn: ou=people,dc=example,dc=com
|
22
|
+
objectClass: organizationalUnit
|
23
|
+
ou: people
|
24
|
+
|
25
|
+
dn: ou=groups,dc=example,dc=com
|
26
|
+
objectClass: organizationalUnit
|
27
|
+
ou: groups
|
28
|
+
|
29
|
+
dn: uid=john,ou=people,dc=example,dc=com
|
30
|
+
objectClass: inetOrgPerson
|
31
|
+
objectClass: posixAccount
|
32
|
+
objectClass: shadowAccount
|
33
|
+
uid: john
|
34
|
+
sn: Doe
|
35
|
+
givenName: John
|
36
|
+
cn: John Doe
|
37
|
+
displayName: John Doe
|
38
|
+
uidNumber: 1000
|
39
|
+
gidNumber: 10000
|
40
|
+
# hased value for 'password'
|
41
|
+
userPassword: {SSHA}qqLFjamdd1cru4RV815+FiSxh/54rfbd
|
42
|
+
gecos: John Doe
|
43
|
+
loginShell: /bin/bash
|
44
|
+
homeDirectory: /home/john
|
45
|
+
shadowExpire: -1
|
46
|
+
shadowFlag: 0
|
47
|
+
shadowWarning: 7
|
48
|
+
shadowMin: 8
|
49
|
+
shadowMax: 999999
|
50
|
+
shadowLastChange: 10877
|
51
|
+
mail: john.doe@example.com
|
52
|
+
postalCode: 31000
|
53
|
+
l: Toulouse
|
54
|
+
o: Example
|
55
|
+
mobile: +33 (0)6 xx xx xx xx
|
56
|
+
homePhone: +33 (0)5 xx xx xx xx
|
57
|
+
title: System Administrator
|
58
|
+
postalAddress:
|
59
|
+
initials: JD
|
60
|
+
|
61
|
+
dn: uid=mary,ou=people,dc=example,dc=com
|
62
|
+
objectClass: inetOrgPerson
|
63
|
+
objectClass: posixAccount
|
64
|
+
objectClass: shadowAccount
|
65
|
+
uid: Mary
|
66
|
+
sn: Jane
|
67
|
+
givenName: Mary Jane
|
68
|
+
cn: Mary Jane
|
69
|
+
displayName: Mary Jane
|
70
|
+
uidNumber: 1001
|
71
|
+
gidNumber: 10001
|
72
|
+
# hased value for 'password'
|
73
|
+
userPassword: {SSHA}qqLFjamdd1cru4RV815+FiSxh/54rfbd
|
74
|
+
mail: mary.jane@example.com
|
75
|
+
gecos: Mary
|
76
|
+
loginShell: /bin/bash
|
77
|
+
homeDirectory: /home/mary
|
78
|
+
shadowExpire: -1
|
79
|
+
shadowFlag: 0
|
80
|
+
shadowWarning: 7
|
81
|
+
shadowMin: 8
|
82
|
+
shadowMax: 999999
|
83
|
+
shadowLastChange: 10877
|
84
|
+
postalCode: 31000
|
85
|
+
l: Toulouse
|
86
|
+
o: Example
|
87
|
+
mobile: +33 (0)6 xx xx xx xx
|
88
|
+
homePhone: +33 (0)5 xx xx xx xx
|
89
|
+
title: System Administrator
|
90
|
+
postalAddress:
|
91
|
+
initials: JD
|
92
|
+
|
93
|
+
dn: cn=example,ou=groups,dc=example,dc=com
|
94
|
+
objectClass: posixGroup
|
95
|
+
cn: example
|
96
|
+
gidNumber: 10000
|
97
|
+
|
98
|
+
dn: cn=group1,ou=groups,dc=example,dc=com
|
99
|
+
objectClass: groupofnames
|
100
|
+
ou: groups
|
101
|
+
cn: group1
|
102
|
+
member: uid=john,ou=people,dc=example,dc=com
|
103
|
+
member: uid=mary,ou=people,dc=example,dc=com
|
104
|
+
|
105
|
+
dn: cn=group2,ou=groups,dc=example,dc=com
|
106
|
+
objectClass: groupofnames
|
107
|
+
ou: groups
|
108
|
+
cn: group2
|
109
|
+
member: uid=john,ou=people,dc=example,dc=com
|