danarchy_deploy 0.2.7 → 0.2.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.asdf_versions.json +5 -0
- data/.tool-versions +1 -0
- data/CHANGELOG.md +15 -0
- data/Gemfile.lock +9 -8
- data/bin/danarchy_deploy +0 -1
- data/danarchy_deploy.gemspec +4 -4
- data/lib/danarchy_deploy/applicator/ssl.rb +1 -1
- data/lib/danarchy_deploy/archiver.rb +1 -1
- data/lib/danarchy_deploy/groups.rb +0 -1
- data/lib/danarchy_deploy/services/init/openrc.rb +10 -6
- data/lib/danarchy_deploy/services/init.rb +28 -18
- data/lib/danarchy_deploy/services.rb +0 -1
- data/lib/danarchy_deploy/system/centos.rb +7 -0
- data/lib/danarchy_deploy/system/debian.rb +6 -0
- data/lib/danarchy_deploy/system/fstab.rb +15 -5
- data/lib/danarchy_deploy/system/gentoo.rb +84 -23
- data/lib/danarchy_deploy/system/opensuse.rb +6 -0
- data/lib/danarchy_deploy/system.rb +14 -9
- data/lib/danarchy_deploy/templater.rb +1 -2
- data/lib/danarchy_deploy/users.rb +50 -42
- data/lib/danarchy_deploy/version.rb +1 -1
- data/lib/danarchy_deploy.rb +63 -20
- data/templates/applications/nginx/domain.conf.erb +38 -0
- data/templates/applications/php/phpfpm.conf.erb +19 -0
- data/templates/applications/php/user.conf.erb +19 -0
- data/templates/applications/wordpress/mysql_user_privileges.sql.erb +2 -0
- data/templates/applications/wordpress/wp-config.php.erb +82 -0
- data/templates/asdf/asdf.sh.erb +52 -0
- data/templates/deploy_template.json +6 -7
- data/templates/distcc/distccd.erb +14 -0
- data/templates/distcc/hosts.erb +2 -0
- data/templates/portage/make.conf.erb +30 -0
- data/templates/portage/package.use/bindist +3 -0
- data/templates/portage/package.use/documentation +3 -0
- data/templates/services/memcached/memcached.erb +40 -0
- data/templates/services/mysql/my.cnf.erb +143 -0
- data/templates/services/mysql/root_my.cnf.erb +11 -0
- data/templates/services/mysql/user_db_grants.sql.erb +33 -0
- data/templates/services/mysql/user_db_grants.sql.erb_cleanupUsers +52 -0
- data/templates/services/nginx/nginx.conf.erb +48 -0
- data/templates/services/php/php-fpm.conf.erb +2 -0
- data/templates/services/postfix/localmail.initial_setup.sh +19 -0
- data/templates/services/postfix/localmail.main.cf.erb +41 -0
- data/templates/services/postfix/mailname.erb +1 -0
- data/templates/services/postfix/mailrelayhost_main.cf.erb +33 -0
- data/templates/services/postfix/main.cf.erb +28 -0
- data/templates/services/postfix/master.cf.erb +124 -0
- data/templates/services/postfix/mysql-virtual-alias-maps.cf.erb +5 -0
- data/templates/services/postfix/mysql-virtual-mailbox-domains.cf.erb +5 -0
- data/templates/services/postfix/mysql-virtual-mailbox-maps.cf.erb +5 -0
- data/templates/system/authorized_keys.erb +5 -0
- data/templates/system/crontab.erb +8 -0
- data/templates/system/dmcrypt.erb +17 -0
- data/templates/system/exports.erb +4 -0
- data/templates/system/fstab.erb +4 -0
- data/templates/system/sudoers.erb +5 -0
- metadata +44 -11
- data/.ruby-gemset +0 -1
- data/.ruby-version +0 -1
- /data/bin/{setup → setup-dd} +0 -0
@@ -8,6 +8,7 @@ module DanarchyDeploy
|
|
8
8
|
|
9
9
|
deployment[:users].each do |username, user|
|
10
10
|
user[:username] = username.to_s
|
11
|
+
user[:home] ||= '/home/' + username.to_s
|
11
12
|
puts "\n > Checking if user '#{user[:username]}' already exists."
|
12
13
|
usercheck_result = usercheck(user, options)
|
13
14
|
|
@@ -15,8 +16,8 @@ module DanarchyDeploy
|
|
15
16
|
puts " - User: #{user[:username]} already exists!"
|
16
17
|
else
|
17
18
|
group = { groupname: user[:username] }
|
18
|
-
group[:gid]
|
19
|
-
group[:system] = user[:system]
|
19
|
+
group[:gid] = user[:gid] || nil
|
20
|
+
group[:system] = user[:system] || nil
|
20
21
|
|
21
22
|
groupcheck_result = DanarchyDeploy::Groups.groupcheck(group, options)
|
22
23
|
if !groupcheck_result[:stdout] && group[:gid]
|
@@ -40,12 +41,12 @@ module DanarchyDeploy
|
|
40
41
|
|
41
42
|
if user[:authorized_keys]
|
42
43
|
puts "\n > Checking on #{user[:authorized_keys].count} authorized_keys for user: #{user[:username]}"
|
43
|
-
authorized_keys(user)
|
44
|
+
authorized_keys(user, options)
|
44
45
|
end
|
45
46
|
|
46
47
|
if user[:sudoer]
|
47
48
|
puts "\n > Checking sudo rules for user: #{user[:username]}"
|
48
|
-
sudoer(user)
|
49
|
+
sudoer(user, options)
|
49
50
|
end
|
50
51
|
end
|
51
52
|
|
@@ -63,13 +64,13 @@ module DanarchyDeploy
|
|
63
64
|
private
|
64
65
|
def self.useradd(user, options)
|
65
66
|
useradd_cmd = "useradd #{user[:username]} "
|
66
|
-
useradd_cmd += "--home-dir #{user[:home]} "
|
67
|
-
useradd_cmd += "--create-home "
|
68
|
-
useradd_cmd += "--uid #{user[:uid]} "
|
69
|
-
useradd_cmd += "--gid #{user[:gid]} "
|
67
|
+
useradd_cmd += "--home-dir #{user[:home]} " if user[:home]
|
68
|
+
useradd_cmd += "--create-home " if ! Dir.exist?(user[:home])
|
69
|
+
useradd_cmd += "--uid #{user[:uid]} " if user[:uid]
|
70
|
+
useradd_cmd += "--gid #{user[:gid]} " if user[:gid]
|
70
71
|
useradd_cmd += "--groups #{user[:groups].join(',')} " if user[:groups]
|
71
|
-
useradd_cmd += "--shell /sbin/nologin "
|
72
|
-
useradd_cmd += "--system "
|
72
|
+
useradd_cmd += "--shell /sbin/nologin " if user[:nologin]
|
73
|
+
useradd_cmd += "--system " if user[:system]
|
73
74
|
DanarchyDeploy::Helpers.run_command(useradd_cmd, options)
|
74
75
|
end
|
75
76
|
|
@@ -111,40 +112,47 @@ module DanarchyDeploy
|
|
111
112
|
DanarchyDeploy::Helpers.run_command(removegroup_cmd, options)
|
112
113
|
end
|
113
114
|
|
114
|
-
def self.authorized_keys(user)
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
115
|
+
def self.authorized_keys(user, options)
|
116
|
+
templates = [
|
117
|
+
{
|
118
|
+
source: 'builtin::system/authorized_keys.erb',
|
119
|
+
target: user[:home] + '/.ssh/authorized_keys',
|
120
|
+
dir_perms: {
|
121
|
+
owner: user[:username],
|
122
|
+
group: user[:username],
|
123
|
+
mode: '0700'
|
124
|
+
},
|
125
|
+
file_perms: {
|
126
|
+
owner: user[:username],
|
127
|
+
group: user[:username],
|
128
|
+
mode: '0644'
|
129
|
+
},
|
130
|
+
variables: {
|
131
|
+
authorized_keys: user[:authorized_keys]
|
132
|
+
}
|
133
|
+
}
|
134
|
+
]
|
135
|
+
|
136
|
+
DanarchyDeploy::Templater.new(templates, options)
|
134
137
|
end
|
135
138
|
|
136
|
-
def self.sudoer(user)
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
139
|
+
def self.sudoer(user, options)
|
140
|
+
templates = [
|
141
|
+
{
|
142
|
+
source: 'builtin::system/sudoers.erb',
|
143
|
+
target: '/etc/sudoers.d/danarchy_deploy-' + user[:username],
|
144
|
+
file_perms: {
|
145
|
+
owner: 'root',
|
146
|
+
group: 'root',
|
147
|
+
mode: '0440'
|
148
|
+
},
|
149
|
+
variables: {
|
150
|
+
rules: user[:sudoer]
|
151
|
+
}
|
152
|
+
}
|
153
|
+
]
|
154
|
+
|
155
|
+
DanarchyDeploy::Templater.new(templates, options)
|
148
156
|
end
|
149
157
|
end
|
150
158
|
end
|
data/lib/danarchy_deploy.rb
CHANGED
@@ -9,6 +9,7 @@ module DanarchyDeploy
|
|
9
9
|
require_relative 'danarchy_deploy/templater'
|
10
10
|
require_relative 'danarchy_deploy/users'
|
11
11
|
require_relative 'danarchy_deploy/version'
|
12
|
+
require 'time'
|
12
13
|
|
13
14
|
class LocalDeploy
|
14
15
|
def self.new(deployment, options)
|
@@ -26,7 +27,7 @@ module DanarchyDeploy
|
|
26
27
|
deployment = DanarchyDeploy::Users.new(deployment, options)
|
27
28
|
deployment = DanarchyDeploy::Services::Init.new(deployment, options)
|
28
29
|
|
29
|
-
deployment[:last_deploy] =
|
30
|
+
deployment[:last_deploy] = Time.now.strftime("%Y/%m/%d %H:%M:%S")
|
30
31
|
puts "\nFinished Local Deployment at #{deployment[:last_deploy]}!"
|
31
32
|
|
32
33
|
if options[:deploy_file].end_with?('.json')
|
@@ -43,13 +44,15 @@ module DanarchyDeploy
|
|
43
44
|
def self.new(deployment, options)
|
44
45
|
puts "\n" + self.name
|
45
46
|
|
46
|
-
|
47
|
+
@working_dir = File.dirname(options[:deploy_file]) + '/'
|
47
48
|
connector = { hostname: deployment[:hostname],
|
48
49
|
ipv4: deployment[:ipv4],
|
49
50
|
ssh_user: deployment[:ssh_user],
|
50
51
|
ssh_key: deployment[:ssh_key] }
|
51
52
|
|
53
|
+
pretend = options[:pretend] ; options[:pretend] = false
|
52
54
|
remote_mkdir(connector, options)
|
55
|
+
# asdf_install(connector, options)
|
53
56
|
|
54
57
|
if options[:dev_gem]
|
55
58
|
puts "\nDev Gem mode: Building and pushing gem..."
|
@@ -63,6 +66,8 @@ module DanarchyDeploy
|
|
63
66
|
gem_binary = _locate_gem_binary(connector, options) # this should run before any install; check version too
|
64
67
|
push_templates(connector, options)
|
65
68
|
push_deployment(connector, options)
|
69
|
+
|
70
|
+
options[:pretend] = pretend
|
66
71
|
deploy_result = remote_LocalDeploy(connector, gem_binary, options)
|
67
72
|
|
68
73
|
abort("\n ! Deployment failed to complete!") if !deploy_result
|
@@ -71,15 +76,15 @@ module DanarchyDeploy
|
|
71
76
|
# remote_cleanup(connector, options) if !options[:pretend]
|
72
77
|
|
73
78
|
puts "\nRemote deployment complete!"
|
74
|
-
|
75
|
-
|
76
|
-
|
79
|
+
options[:deploy_file].end_with?('.json') ?
|
80
|
+
JSON.parse(File.read(options[:deploy_file]), symbolize_names: true) :
|
81
|
+
YAML.load_file(options[:deploy_file]) if options[:deploy_file].end_with?('.yaml')
|
77
82
|
end
|
78
83
|
|
79
84
|
private
|
80
85
|
def self.remote_mkdir(connector, options)
|
81
|
-
puts "\n > Creating directory: #{
|
82
|
-
mkdir_cmd = _ssh_command(connector, "test -d #{
|
86
|
+
puts "\n > Creating directory: #{@working_dir}"
|
87
|
+
mkdir_cmd = _ssh_command(connector, "test -d #{@working_dir} && echo 'Directory exists!' || sudo mkdir -vp #{@working_dir}")
|
83
88
|
mkdir_result = DanarchyDeploy::Helpers.run_command(mkdir_cmd, options)
|
84
89
|
|
85
90
|
if mkdir_result[:stderr] && ! mkdir_result[:stdout]
|
@@ -100,12 +105,48 @@ module DanarchyDeploy
|
|
100
105
|
end
|
101
106
|
end
|
102
107
|
|
108
|
+
# def self.asdf_install(connector, options)
|
109
|
+
# versions = JSON.parse(
|
110
|
+
# File.read(File.expand_path('../', __dir__) + '/.asdf_versions.json'),
|
111
|
+
# symbolize_names: true)
|
112
|
+
|
113
|
+
# template = {
|
114
|
+
# target: '/tmp/asdf.sh_' + Random.hex(6),
|
115
|
+
# source: 'builtin::asdf/asdf.sh.erb',
|
116
|
+
# variables: versions
|
117
|
+
# }
|
118
|
+
|
119
|
+
# DanarchyDeploy::Templater.new([template], options)
|
120
|
+
# push_cmd = _scp_push(connector, template[:target], '/tmp')
|
121
|
+
# push_result = DanarchyDeploy::Helpers.run_command(push_cmd, options)
|
122
|
+
|
123
|
+
# if push_result[:stderr]
|
124
|
+
# abort(' ! Asdf push failed!')
|
125
|
+
# else
|
126
|
+
# puts ' |+ Asdf pushed!'
|
127
|
+
# asdf_chown_cmd = _ssh_command(
|
128
|
+
# connector,
|
129
|
+
# "sudo mv -v #{template[:target]} /etc/profile.d/asdf.sh && " +
|
130
|
+
# 'sudo chown -c root:root /etc/profile.d/asdf.sh')
|
131
|
+
# asdf_chown_result = DanarchyDeploy::Helpers.run_command(asdf_chown_cmd, options)
|
132
|
+
# File.delete(template[:target])
|
133
|
+
# end
|
134
|
+
|
135
|
+
# asdf_current_cmd = _ssh_command(connector, 'sudo -i asdf current')
|
136
|
+
# asdf_current_result = DanarchyDeploy::Helpers.run_command(asdf_current_cmd, options)
|
137
|
+
|
138
|
+
# puts asdf_current_result[:stderr] if asdf_current_result[:stderr]
|
139
|
+
# puts asdf_current_result[:stdout]
|
140
|
+
# end
|
141
|
+
|
103
142
|
def self.gem_install(connector, options)
|
104
143
|
puts "\n > Installing danarchy_deploy on #{connector[:hostname]}"
|
105
|
-
install_cmd
|
144
|
+
install_cmd = _ssh_command(connector, 'sudo -i gem install -f danarchy_deploy')
|
106
145
|
install_result = DanarchyDeploy::Helpers.run_command(install_cmd, options)
|
107
146
|
|
108
|
-
if install_result[:stderr]
|
147
|
+
if install_result[:stderr] =~ /WARN/i
|
148
|
+
puts ' ! ' + install_result[:stderr]
|
149
|
+
elsif install_result[:stderr]
|
109
150
|
abort(' ! Gem install failed!')
|
110
151
|
else
|
111
152
|
puts " |+ Gem installed!"
|
@@ -134,7 +175,7 @@ module DanarchyDeploy
|
|
134
175
|
|
135
176
|
def self.dev_gem_install(connector, gem, options)
|
136
177
|
puts "\n > Pushing gem: #{gem} to #{connector[:hostname]}"
|
137
|
-
push_cmd
|
178
|
+
push_cmd = _scp_push(connector, gem, options[:deploy_dir])
|
138
179
|
push_result = DanarchyDeploy::Helpers.run_command(push_cmd, options)
|
139
180
|
|
140
181
|
if push_result[:stderr]
|
@@ -144,10 +185,12 @@ module DanarchyDeploy
|
|
144
185
|
end
|
145
186
|
|
146
187
|
puts "\n > Installing gem: #{gem} on #{connector[:hostname]}"
|
147
|
-
install_cmd
|
188
|
+
install_cmd = _ssh_command(connector, "sudo -i gem install --bindir /usr/local/bin -f #{options[:deploy_dir]}/#{File.basename(gem)}")
|
148
189
|
install_result = DanarchyDeploy::Helpers.run_command(install_cmd, options)
|
149
190
|
|
150
|
-
if install_result[:stderr]
|
191
|
+
if install_result[:stderr] =~ /WARN/i
|
192
|
+
puts ' ! ' + install_result[:stderr]
|
193
|
+
elsif install_result[:stderr]
|
151
194
|
abort(' ! Gem install failed!')
|
152
195
|
else
|
153
196
|
puts ' |+ Gem installed!'
|
@@ -155,39 +198,39 @@ module DanarchyDeploy
|
|
155
198
|
end
|
156
199
|
|
157
200
|
def self.gem_clean(connector, options)
|
158
|
-
clean_cmd = _ssh_command(connector, 'sudo gem clean danarchy_deploy 2&>/dev/null')
|
201
|
+
clean_cmd = _ssh_command(connector, 'sudo -i gem clean danarchy_deploy 2&>/dev/null')
|
159
202
|
system(clean_cmd)
|
160
203
|
end
|
161
204
|
|
162
205
|
def self.push_templates(connector, options)
|
163
206
|
template_dir = options[:deploy_dir] + '/templates'
|
164
207
|
puts "\n > Pushing templates: #{template_dir}"
|
165
|
-
push_cmd
|
208
|
+
push_cmd = _rsync_push(connector, template_dir, template_dir)
|
166
209
|
push_result = DanarchyDeploy::Helpers.run_command(push_cmd, options)
|
167
210
|
|
168
211
|
if push_result[:stderr]
|
169
212
|
abort(' ! Templates push failed!')
|
170
213
|
else
|
171
|
-
puts " |+ Templates pushed to '#{
|
214
|
+
puts " |+ Templates pushed to '#{template_dir}'!"
|
172
215
|
end
|
173
216
|
end
|
174
217
|
|
175
218
|
def self.push_deployment(connector, options)
|
176
219
|
puts "\n > Pushing deployment: #{options[:deploy_file]}"
|
177
|
-
push_cmd
|
220
|
+
push_cmd = _rsync_push(connector, @working_dir, @working_dir)
|
178
221
|
push_result = DanarchyDeploy::Helpers.run_command(push_cmd, options)
|
179
222
|
|
180
223
|
if push_result[:stderr]
|
181
224
|
abort(' ! Deployment push failed!')
|
182
225
|
else
|
183
|
-
puts " |+ Deployment pushed to '#{
|
226
|
+
puts " |+ Deployment pushed to '#{@working_dir}'!"
|
184
227
|
end
|
185
228
|
end
|
186
229
|
|
187
230
|
def self.remote_LocalDeploy(connector, gem_binary, options)
|
188
231
|
puts "\n > Running LocalDeploy on #{connector[:hostname]}.\n\n"
|
189
232
|
|
190
|
-
deploy_cmd = "sudo #{gem_binary} local "
|
233
|
+
deploy_cmd = "sudo -i #{gem_binary} local "
|
191
234
|
deploy_cmd += '--first-run ' if options[:first_run]
|
192
235
|
deploy_cmd += '--ssh-verbose ' if options[:ssh_verbose]
|
193
236
|
deploy_cmd += '--vars-verbose ' if options[:vars_verbose]
|
@@ -214,7 +257,7 @@ module DanarchyDeploy
|
|
214
257
|
|
215
258
|
def self.remote_cleanup(connector, options)
|
216
259
|
puts "\n > Cleaning up: #{options[:deploy_dir]}"
|
217
|
-
cleanup_cmd
|
260
|
+
cleanup_cmd = _ssh_command(connector, "sudo rm -rfv #{@working_dir}")
|
218
261
|
cleanup_result = DanarchyDeploy::Helpers.run_command(cleanup_cmd, options)
|
219
262
|
|
220
263
|
if cleanup_result[:stderr]
|
@@ -225,7 +268,7 @@ module DanarchyDeploy
|
|
225
268
|
end
|
226
269
|
|
227
270
|
def self._locate_gem_binary(connector, options)
|
228
|
-
locate_cmd
|
271
|
+
locate_cmd = _ssh_command(connector, 'sudo -i which danarchy_deploy')
|
229
272
|
locate_result = DanarchyDeploy::Helpers.run_command(locate_cmd, options)
|
230
273
|
|
231
274
|
if locate_result[:stderr]
|
@@ -0,0 +1,38 @@
|
|
1
|
+
server {
|
2
|
+
server_name www.<%= @variables[:domain] %>;
|
3
|
+
listen 80;
|
4
|
+
return 301 http://<%= @variables[:domain] %>/$request_uri;
|
5
|
+
}
|
6
|
+
|
7
|
+
server {
|
8
|
+
server_name <%= @variables[:domain] %>;
|
9
|
+
listen 80;
|
10
|
+
|
11
|
+
server_tokens off;
|
12
|
+
add_header X-Content-Type-Options nosniff;
|
13
|
+
add_header X-XSS-Protection "1; mode=block";
|
14
|
+
add_header X-Frame-Options "SAMEORIGIN";
|
15
|
+
|
16
|
+
access_log /home/<%= @variables[:username] %>/nginx/logs/<%= @variables[:domain] %>/access_log main;
|
17
|
+
error_log /home/<%= @variables[:username] %>/nginx/logs/<%= @variables[:domain] %>/error_log info;
|
18
|
+
|
19
|
+
root /home/<%= @variables[:username] %>/<%= @variables[:domain] %>;
|
20
|
+
index index.php;
|
21
|
+
|
22
|
+
location / {
|
23
|
+
try_files $uri $uri/ /index.php?q=$uri&$args;
|
24
|
+
|
25
|
+
}
|
26
|
+
|
27
|
+
location ~ \.php$ {
|
28
|
+
try_files $uri =404;
|
29
|
+
include /etc/nginx/fastcgi_params;
|
30
|
+
fastcgi_buffers 16 16k;
|
31
|
+
fastcgi_buffer_size 32k;
|
32
|
+
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
33
|
+
fastcgi_pass unix:/var/run/php-fpm-<%= @variables[:domain].gsub('.','_') %>.sock;
|
34
|
+
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
|
35
|
+
fastcgi_index index.php;
|
36
|
+
|
37
|
+
}
|
38
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
[<%= @variables[:pool] %>]
|
2
|
+
user = <%= @variables[:username] %>
|
3
|
+
group = <%= @variables[:username] %>
|
4
|
+
|
5
|
+
listen = /var/run/php-fpm-<%= @variables[:pool] %>.sock
|
6
|
+
<% if @variables[:web_user] %>
|
7
|
+
listen.owner = <%= @variables[:web_user] %>
|
8
|
+
listen.group = <%= @variables[:web_user] %>
|
9
|
+
<% end %>
|
10
|
+
pm = dynamic
|
11
|
+
pm.max_children = 4
|
12
|
+
pm.start_servers = 1
|
13
|
+
pm.min_spare_servers = 1
|
14
|
+
pm.max_spare_servers = 2
|
15
|
+
|
16
|
+
env[TMP] = <%= @variables[:tmp] %>
|
17
|
+
env[TMPDIR] = <%= @variables[:tmp] %>
|
18
|
+
env[TEMP] = <%= @variables[:tmp] %>
|
19
|
+
env[PATH] = /usr/local/bin:/usr/bin:/bin
|
@@ -0,0 +1,19 @@
|
|
1
|
+
[<%= @variables[:username] %>]
|
2
|
+
user = <%= @variables[:username] %>
|
3
|
+
group = <%= @variables[:username] %>
|
4
|
+
|
5
|
+
listen = /var/run/php7-fpm-<%= @variables[:username] %>.sock
|
6
|
+
<% if @variables[:web_user] %>
|
7
|
+
listen.owner = <%= @variables[:web_user] %>
|
8
|
+
listen.group = <%= @variables[:web_user] %>
|
9
|
+
<% end %>
|
10
|
+
pm = dynamic
|
11
|
+
pm.max_children = 4
|
12
|
+
pm.start_servers = 1
|
13
|
+
pm.min_spare_servers = 1
|
14
|
+
pm.max_spare_servers = 2
|
15
|
+
|
16
|
+
env[TMP] = <%= @variables[:tmp] %>
|
17
|
+
env[TMPDIR] = <%= @variables[:tmp] %>
|
18
|
+
env[TEMP] = <%= @variables[:tmp] %>
|
19
|
+
env[PATH] = /usr/local/bin:/usr/bin:/bin
|
@@ -0,0 +1,82 @@
|
|
1
|
+
<?php
|
2
|
+
/**
|
3
|
+
* The base configuration for WordPress
|
4
|
+
*
|
5
|
+
* The wp-config.php creation script uses this file during the
|
6
|
+
* installation. You don't have to use the web site, you can
|
7
|
+
* copy this file to "wp-config.php" and fill in the values.
|
8
|
+
*
|
9
|
+
* This file contains the following configurations:
|
10
|
+
*
|
11
|
+
* * MySQL settings
|
12
|
+
* * Secret keys
|
13
|
+
* * Database table prefix
|
14
|
+
* * ABSPATH
|
15
|
+
*
|
16
|
+
* @link https://codex.wordpress.org/Editing_wp-config.php
|
17
|
+
*
|
18
|
+
* @package WordPress
|
19
|
+
*/
|
20
|
+
|
21
|
+
// ** MySQL settings - You can get this info from your web host ** //
|
22
|
+
/** The name of the database for WordPress */
|
23
|
+
define('DB_NAME', '<%= @variables[:db_name] %>');
|
24
|
+
|
25
|
+
/** MySQL database username */
|
26
|
+
define('DB_USER', '<%= @variables[:db_user] %>');
|
27
|
+
|
28
|
+
/** MySQL database password */
|
29
|
+
define('DB_PASSWORD', '<%= DanarchyDeploy::Helpers.decode_base64(@variables[:db_pass]) %>');
|
30
|
+
|
31
|
+
/** MySQL hostname */
|
32
|
+
define('DB_HOST', '<%= @variables[:db_host] %>');
|
33
|
+
|
34
|
+
/** Database Charset to use in creating database tables. */
|
35
|
+
define('DB_CHARSET', 'utf8');
|
36
|
+
|
37
|
+
/** The Database Collate type. Don't change this if in doubt. */
|
38
|
+
define('DB_COLLATE', '');
|
39
|
+
|
40
|
+
/**#@+
|
41
|
+
* Authentication Unique Keys and Salts.
|
42
|
+
*
|
43
|
+
* Change these to different unique phrases!
|
44
|
+
* You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
|
45
|
+
* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
|
46
|
+
*
|
47
|
+
* @since 2.6.0
|
48
|
+
*/
|
49
|
+
<%= @variables[:salts] %>
|
50
|
+
|
51
|
+
/**#@-*/
|
52
|
+
|
53
|
+
/**
|
54
|
+
* WordPress Database Table prefix.
|
55
|
+
*
|
56
|
+
* You can have multiple installations in one database if you give each
|
57
|
+
* a unique prefix. Only numbers, letters, and underscores please!
|
58
|
+
*/
|
59
|
+
$table_prefix = '<%= @variables[:table_prefix] ? @variables[:table_prefix] : "wp_" %>';
|
60
|
+
|
61
|
+
/**
|
62
|
+
* For developers: WordPress debugging mode.
|
63
|
+
*
|
64
|
+
* Change this to true to enable the display of notices during development.
|
65
|
+
* It is strongly recommended that plugin and theme developers use WP_DEBUG
|
66
|
+
* in their development environments.
|
67
|
+
*
|
68
|
+
* For information on other constants that can be used for debugging,
|
69
|
+
* visit the Codex.
|
70
|
+
*
|
71
|
+
* @link https://codex.wordpress.org/Debugging_in_WordPress
|
72
|
+
*/
|
73
|
+
define('WP_DEBUG', false);
|
74
|
+
|
75
|
+
/* That's all, stop editing! Happy blogging. */
|
76
|
+
|
77
|
+
/** Absolute path to the WordPress directory. */
|
78
|
+
if ( !defined('ABSPATH') )
|
79
|
+
define('ABSPATH', dirname(__FILE__) . '/');
|
80
|
+
|
81
|
+
/** Sets up WordPress vars and included files. */
|
82
|
+
require_once(ABSPATH . 'wp-settings.php');
|
@@ -0,0 +1,52 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
# Deployed by danarchy_deploy
|
3
|
+
# manages system-wide asdf; still allows for local ~/.asdf
|
4
|
+
|
5
|
+
function _run_now() {
|
6
|
+
tmp_file=/tmp/asdf_next_run.tmp
|
7
|
+
next_run=$(cat ${tmp_file} 2>/dev/null || echo 0)
|
8
|
+
|
9
|
+
if [[ $(date '+%s') -gt ${next_run} ]]; then
|
10
|
+
echo 'true'
|
11
|
+
else
|
12
|
+
echo 'false'
|
13
|
+
fi
|
14
|
+
}
|
15
|
+
|
16
|
+
function _load_asdf() {
|
17
|
+
path=${1}
|
18
|
+
export ASDF_DATA_DIR=${path}
|
19
|
+
source ${path}/asdf.sh
|
20
|
+
source ${path}/completions/asdf.bash
|
21
|
+
}
|
22
|
+
|
23
|
+
if [[ ${UID} == 0 && $(_run_now) == 'true' ]]; then
|
24
|
+
if [[ ! -d /opt/asdf ]]; then
|
25
|
+
git clone https://github.com/asdf-vm/asdf.git /opt/asdf
|
26
|
+
fi
|
27
|
+
|
28
|
+
asdf update >/dev/null 2>&1
|
29
|
+
_load_asdf /opt/asdf
|
30
|
+
|
31
|
+
<%- @variables.each do |lang, versions| -%>
|
32
|
+
asdf plugin add <%= lang -%>
|
33
|
+
|
34
|
+
<%- versions.each do |version| -%>
|
35
|
+
asdf install <%= lang -%> <%= version -%>
|
36
|
+
<% end %>
|
37
|
+
|
38
|
+
asdf global <%= lang %> <%= versions.first -%>
|
39
|
+
<% end %>
|
40
|
+
|
41
|
+
date -d '1 hour' '+%s' > /tmp/asdf_next_run.tmp
|
42
|
+
asdf current
|
43
|
+
fi
|
44
|
+
|
45
|
+
if [[ -d ${HOME}/.asdf ]]; then
|
46
|
+
_load_asdf ${HOME}/.asdf
|
47
|
+
elif [[ -d /opt/asdf ]]; then
|
48
|
+
_load_asdf /opt/asdf
|
49
|
+
fi
|
50
|
+
|
51
|
+
unset -f _run_now
|
52
|
+
unset -f _load_asdf
|
@@ -9,7 +9,7 @@
|
|
9
9
|
"package2"
|
10
10
|
],
|
11
11
|
"system": {
|
12
|
-
"update": "all || system ||
|
12
|
+
"update": "true || all || system || selected || none || false",
|
13
13
|
"fstab": {
|
14
14
|
"source": "builtin::system/fstab_gentoo_client.erb",
|
15
15
|
"mounts": [
|
@@ -36,14 +36,13 @@
|
|
36
36
|
}
|
37
37
|
]
|
38
38
|
},
|
39
|
-
"users":
|
40
|
-
{
|
41
|
-
"username": "username",
|
39
|
+
"users": {
|
40
|
+
"username": {
|
42
41
|
"home": "/home/username",
|
43
42
|
"uid": int,
|
44
43
|
"gid": int,
|
45
|
-
"sudoer": "username ALL
|
46
|
-
"
|
44
|
+
"sudoer": ["username ALL=(ALL) NOPASSWD:ALL"],
|
45
|
+
"authorized_keys": [
|
47
46
|
"ssh-ed25519 it0C5o6GHC8lxqctpexakfdA5o7LeSe+QbMhIl+GYtZ2OCMFliLsODDrrazR+u2y user@hostname",
|
48
47
|
"ssh-rsa K0APeEvotGunpBrl/LvSAG/gLUldCnOrL60v47QYjuqoGJmM3Fk8V29+8jZPp9Dl user@hostname"
|
49
48
|
],
|
@@ -61,7 +60,7 @@
|
|
61
60
|
}
|
62
61
|
]
|
63
62
|
}
|
64
|
-
|
63
|
+
},
|
65
64
|
"groups": [
|
66
65
|
{
|
67
66
|
"groupname": "groupname",
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# Deployed by dAnarchy_deploy: /etc/conf.d/distccd: config file for /etc/init.d/distccd
|
2
|
+
|
3
|
+
# this is the distccd executable
|
4
|
+
DISTCCD_EXEC="/usr/bin/distccd"
|
5
|
+
|
6
|
+
# this is where distccd will store its pid file
|
7
|
+
DISTCCD_PIDFILE="/var/run/distccd/distccd.pid"
|
8
|
+
|
9
|
+
<%= @variables[:opts] ? 'DISTCCD_OPTS=' + "\"#{@variables[:opts]}\"" : 'DISTCCD_OPTS=""' %>
|
10
|
+
<%= @variables[:port] ? 'DISTCCD_OPTS=' + "\"${DISTCCD_OPTS} --port #{@variables[:port]}\"" : 'DISTCCD_OPTS="${DISTCCD_OPTS} --port 3632"' %>
|
11
|
+
<%= @variables[:loglevel] ? 'DISTCCD_OPTS=' + "\"${DISTCCD_OPTS} --log-level #{@variables[:loglevel]}\"" : 'DISTCCD_OPTS="${DISTCCD_OPTS} --log-level critical"' %>
|
12
|
+
<%= @variables[:allow] ? 'DISTCCD_OPTS=' + "\"${DISTCCD_OPTS} --allow #{@variables[:allow]}\"" : '' %>
|
13
|
+
<%= @variables[:listen] ? 'DISTCCD_OPTS=' + "\"${DISTCCD_OPTS} --listen #{@variables[:listen]}\"" : '' %>
|
14
|
+
<%= @variables[:nice] ? 'DISTCCD_OPTS=' + "\"${DISTCCD_OPTS} -N #{@variables[:nice]}\"" : '' %>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# Deployed by dAnarchy_deploy: /etc/portage/make.conf
|
2
|
+
COMMON_FLAGS="-march=<%= `gcc -march=native -Q --help=target | grep march`.split[1] %> -O2 -pipe"
|
3
|
+
CFLAGS="${COMMON_FLAGS}"
|
4
|
+
CXXFLAGS="${COMMON_FLAGS}"
|
5
|
+
FCFLAGS="${COMMON_FLAGS}"
|
6
|
+
FFLAGS="${COMMON_FLAGS}"
|
7
|
+
|
8
|
+
MAKEOPTS="-j<%= `nproc`.to_i * 2 + 1 %> -l<%= `nproc`.to_i %>"
|
9
|
+
CPU_FLAGS_X86="<%= `cpuid2cpuflags`.split(': ').last.chomp %>"
|
10
|
+
|
11
|
+
<% if !@variables -%>
|
12
|
+
USE="bindist logrotate"
|
13
|
+
INPUT_DEVICES="evdev keyboard"
|
14
|
+
<% else -%>
|
15
|
+
<%= @variables[:use] ? 'USE=' + "\"bindist logrotate #{@variables[:use]}\"\n" : "USE=\"bindist logrotate\"\n" -%>
|
16
|
+
<%= @variables[:grub] ? 'GRUB_PLATFORMS=' + "\"#{@variables[:grub]}\"\n" : '' -%>
|
17
|
+
<%= @variables[:ruby] ? 'RUBY_TARGETS=' + "\"#{@variables[:ruby]}\"\n" : '' -%>
|
18
|
+
<%= @variables[:php] ? 'PHP_TARGETS=' + "\"#{@variables[:php]}\"\n" : '' -%>
|
19
|
+
<%= @variables[:features] ? 'FEATURES=' + "\"#{@variables[:features]}\"\n" : '' -%>
|
20
|
+
<%= @variables[:videocards] ? 'VIDEO_CARDS=' + "\"#{@variables[:videocards]}\"\n" : '' -%>
|
21
|
+
<%= @variables[:input] ? 'INPUT_DEVICES=' + "\"#{@variables[:input]}\"\n" : "INPUT_DEVICES=\"evdev keyboard\"\n" -%>
|
22
|
+
<% end -%>
|
23
|
+
|
24
|
+
# This sets the language of build output to English.
|
25
|
+
# Please keep this setting intact when reporting bugs.
|
26
|
+
LC_MESSAGES=C
|
27
|
+
|
28
|
+
PORTDIR="/var/db/repos/gentoo"
|
29
|
+
DISTDIR="/var/cache/distfiles"
|
30
|
+
PKGDIR="/var/cache/binpkgs"
|