-
Notifications
You must be signed in to change notification settings - Fork 169
/
Copy pathdatabase.rb
85 lines (78 loc) · 2.39 KB
/
database.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
def instance(vconfig, custom)
c = custom['config']
# Network
fqdn = c.include?('fqdn') ? c['fqdn'] : 'db.pentest.env'
private_subnet = c.include?('private_subnet') ? c['private_subnet'] : '10.14.42.0/24'
private_ip = c.include?('private_ip') ? c['private_ip'] : '10.14.42.11'
# Databases
postgres_pass = c.include?('postgres_pass') ? c['postgres_pass'] : 'postgres'
msfdb_name = c.include?('msfdb_name') ? c['msfdb_name'] : 'msf'
msfdb_user = c.include?('msfdb_user') ? c['msfdb_user'] : 'msf'
msfdb_pass = c.include?('msfdb_pass') ? c['msfdb_pass'] : 'msf'
vconfig.vm.define custom['name'], primary: false, autostart: false do |database|
database.vm.box = 'debian/contrib-jessie64'
database.vm.box_check_update = false
database.vm.provider 'virtualbox' do |v|
v.gui = false
v.customize ['modifyvm', :id, '--name', "pentest-env-#{custom['name']}"]
v.customize ['modifyvm', :id, '--memory', 1024]
v.customize ['modifyvm', :id, '--vrde', 'off']
end
database.vm.provision :chef_solo do |chef|
chef.install = true
chef.version = '12.17.44'
chef.cookbooks_path = 'berks-cookbooks/'
chef.roles_path = 'chef-repo/roles'
chef.add_recipe('apt')
chef.add_recipe('build-essential')
chef.add_recipe('elite::packages')
chef.add_recipe('hostname')
chef.add_role('couchdb-from-source')
chef.add_role('postgresql-server')
chef.add_recipe('pentester::msf_db')
chef.json = {
set_fqdn: fqdn,
elite: {
packages: ['libc6-dev', 'libpq-dev']
},
postgresql: {
config: {
listen_addresses: private_ip
},
password: {
postgres: postgres_pass
},
pg_hba: [
{
comment: 'pentest-env private network',
type: 'host',
db: 'all',
user: 'all',
addr: private_subnet,
method: 'md5'
}
]
},
couch_db: {
config: {
httpd: {
bind_address: private_ip
}
}
},
pentester: {
db: {
host: private_ip
},
msf: {
db: {
db: msfdb_name,
user: msfdb_user,
pass: msfdb_pass
}
}
}
}
end
end
end