danarchy_deploy 0.2.6 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/danarchy_deploy.gemspec +4 -4
- 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/gentoo.rb +83 -23
- data/lib/danarchy_deploy/system/opensuse.rb +6 -0
- data/lib/danarchy_deploy/system.rb +22 -10
- data/lib/danarchy_deploy/templater.rb +26 -9
- data/lib/danarchy_deploy/users.rb +50 -42
- data/lib/danarchy_deploy/version.rb +1 -1
- data/lib/danarchy_deploy.rb +61 -19
- 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 +76 -50
- 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
@@ -1,40 +1,66 @@
|
|
1
1
|
{
|
2
2
|
"hostname": "hostname",
|
3
|
-
"os": "gentoo
|
4
|
-
"ipv4": "IPv4 to use for deployment",
|
5
|
-
"ssh_user": "
|
6
|
-
"ssh_key": "/home/path/to/
|
3
|
+
"os": "gentoo || debian || fedora || ubuntu || opensuse",
|
4
|
+
"ipv4": "IPv4 to use for remote deployment",
|
5
|
+
"ssh_user": "ssh-user",
|
6
|
+
"ssh_key": "/home/path/to/ssh-user/ssh_key.",
|
7
7
|
"packages": [
|
8
8
|
"package1",
|
9
9
|
"package2"
|
10
10
|
],
|
11
|
-
"
|
12
|
-
|
13
|
-
|
11
|
+
"system": {
|
12
|
+
"update": "true || all || system || selected || none || false",
|
13
|
+
"fstab": {
|
14
|
+
"source": "builtin::system/fstab_gentoo_client.erb",
|
15
|
+
"mounts": [
|
16
|
+
{
|
17
|
+
"filesystem": "/",
|
18
|
+
"mountpoint": "/dev/sda3",
|
19
|
+
"type": "ext4",
|
20
|
+
"opts": "defaults,noatime",
|
21
|
+
"dump/pass": "0 0"
|
22
|
+
}
|
23
|
+
]
|
24
|
+
}
|
25
|
+
},
|
26
|
+
"portage": {
|
27
|
+
"sync": false,
|
28
|
+
"templates": [
|
29
|
+
{
|
30
|
+
"target": "/etc/portage/make.conf",
|
31
|
+
"source": "builtin::portage/make.conf.erb",
|
32
|
+
"variables": {
|
33
|
+
"use": "bindist logrotate",
|
34
|
+
"features": "distcc"
|
35
|
+
}
|
36
|
+
}
|
37
|
+
]
|
38
|
+
},
|
39
|
+
"users": {
|
40
|
+
"username": {
|
14
41
|
"home": "/home/username",
|
15
42
|
"uid": int,
|
16
43
|
"gid": int,
|
17
|
-
"sudoer": "username ALL
|
18
|
-
"
|
19
|
-
|
20
|
-
|
44
|
+
"sudoer": ["username ALL=(ALL) NOPASSWD:ALL"],
|
45
|
+
"authorized_keys": [
|
46
|
+
"ssh-ed25519 it0C5o6GHC8lxqctpexakfdA5o7LeSe+QbMhIl+GYtZ2OCMFliLsODDrrazR+u2y user@hostname",
|
47
|
+
"ssh-rsa K0APeEvotGunpBrl/LvSAG/gLUldCnOrL60v47QYjuqoGJmM3Fk8V29+8jZPp9Dl user@hostname"
|
21
48
|
],
|
22
49
|
"groups": [
|
23
|
-
|
24
|
-
int
|
50
|
+
int
|
25
51
|
],
|
26
52
|
"archives": [
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
53
|
+
{
|
54
|
+
"target": "/path/to/extract/to/",
|
55
|
+
"source": "/path/to/tarball.(tar.{gz,bz2}|zip)"
|
56
|
+
},
|
57
|
+
{
|
58
|
+
"target": "/path/to/extract/to/",
|
59
|
+
"data": "couchdb::base64_encoded_data"
|
60
|
+
}
|
35
61
|
]
|
36
62
|
}
|
37
|
-
|
63
|
+
},
|
38
64
|
"groups": [
|
39
65
|
{
|
40
66
|
"groupname": "groupname",
|
@@ -50,48 +76,48 @@
|
|
50
76
|
]
|
51
77
|
},
|
52
78
|
"archives": [
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
79
|
+
{
|
80
|
+
"target": "/path/to/extract/to/",
|
81
|
+
"source": "/path/to/tarball.(tar.{gz,bz2}|zip)"
|
82
|
+
},
|
83
|
+
{
|
84
|
+
"target": "/path/to/extract/to/",
|
85
|
+
"data": "couchdb::base64_encoded_data"
|
86
|
+
}
|
61
87
|
],
|
62
88
|
"templates": [
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
89
|
+
{
|
90
|
+
"target": "/path/to/target/file",
|
91
|
+
"source": "/path/to/source/erb",
|
92
|
+
"dir_perms": {
|
67
93
|
"owner": "username",
|
68
94
|
"group": "groupname",
|
69
95
|
"mode": "0755"
|
70
|
-
|
71
|
-
|
96
|
+
},
|
97
|
+
"file_perms": {
|
72
98
|
"owner": "username",
|
73
99
|
"group": "groupname",
|
74
100
|
"mode": "0644"
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
101
|
+
},
|
102
|
+
"variables": {
|
103
|
+
"var1": "value",
|
104
|
+
"var2": "value"
|
105
|
+
}
|
106
|
+
},
|
107
|
+
{
|
108
|
+
"target": "/path/to/target/file",
|
109
|
+
"data": "couchdb::base64_encoded_erb",
|
110
|
+
"dir_perms": {
|
85
111
|
"owner": "username",
|
86
112
|
"group": "groupname",
|
87
113
|
"mode": "0755"
|
88
|
-
|
89
|
-
|
114
|
+
},
|
115
|
+
"file_perms": {
|
90
116
|
"owner": "username",
|
91
117
|
"group": "groupname",
|
92
118
|
"mode": "0644"
|
93
|
-
|
94
|
-
|
119
|
+
}
|
120
|
+
}
|
95
121
|
]
|
96
122
|
}
|
97
123
|
}
|
@@ -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"
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# memcached config file
|
2
|
+
|
3
|
+
MEMCACHED_BINARY="/usr/bin/memcached"
|
4
|
+
|
5
|
+
# Specify memory usage in megabytes (do not use letters)
|
6
|
+
# 64MB is default
|
7
|
+
MEMUSAGE="64"
|
8
|
+
|
9
|
+
# User to run as
|
10
|
+
MEMCACHED_RUNAS="memcached"
|
11
|
+
|
12
|
+
# Specify maximum number of concurrent connections
|
13
|
+
# 1024 is default
|
14
|
+
MAXCONN="1024"
|
15
|
+
|
16
|
+
# Listen for connections on what address?
|
17
|
+
# If this is empty, memcached will listen on 0.0.0.0
|
18
|
+
# be sure you have a firewall in place!
|
19
|
+
LISTENON="<%= (@variables && @variables[:listenon]) ? @variables[:listenon] : '127.0.0.1' %>"
|
20
|
+
|
21
|
+
# Listen for connections on what port?
|
22
|
+
PORT="<%= (@variables && @variables[:port]) ? @variables[:port] : '11211' %>"
|
23
|
+
|
24
|
+
# Listen for UDP connecitons on what port? 0 means turn off UDP
|
25
|
+
UDPPORT="${PORT}"
|
26
|
+
|
27
|
+
# PID file location
|
28
|
+
# '-${PORT}.${CONF}.pid' will be appended to this!
|
29
|
+
# You do not normally need to change this.
|
30
|
+
PIDBASE="/var/run/memcached/memcached"
|
31
|
+
|
32
|
+
# Socket to listen on
|
33
|
+
#SOCKET="/var/run/memcached/memcached.sock"
|
34
|
+
|
35
|
+
# Socket mask
|
36
|
+
# 0700 is default
|
37
|
+
#SOCKET_MASK="0700"
|
38
|
+
|
39
|
+
# Other Options
|
40
|
+
MISC_OPTS=""
|
@@ -0,0 +1,143 @@
|
|
1
|
+
# /etc/mysql/my.cnf: The global mysql configuration file.
|
2
|
+
|
3
|
+
# The following options will be passed to all MySQL clients
|
4
|
+
[client]
|
5
|
+
#password = your_password
|
6
|
+
port = 3306
|
7
|
+
socket = /var/run/mysqld/mysqld.sock
|
8
|
+
|
9
|
+
[mysql]
|
10
|
+
character-sets-dir=/usr/share/mariadb/charsets
|
11
|
+
default-character-set=utf8
|
12
|
+
|
13
|
+
[mysqladmin]
|
14
|
+
character-sets-dir=/usr/share/mariadb/charsets
|
15
|
+
default-character-set=utf8
|
16
|
+
|
17
|
+
[mysqlcheck]
|
18
|
+
character-sets-dir=/usr/share/mariadb/charsets
|
19
|
+
default-character-set=utf8
|
20
|
+
|
21
|
+
[mysqldump]
|
22
|
+
character-sets-dir=/usr/share/mariadb/charsets
|
23
|
+
default-character-set=utf8
|
24
|
+
|
25
|
+
[mysqlimport]
|
26
|
+
character-sets-dir=/usr/share/mariadb/charsets
|
27
|
+
default-character-set=utf8
|
28
|
+
|
29
|
+
[mysqlshow]
|
30
|
+
character-sets-dir=/usr/share/mariadb/charsets
|
31
|
+
default-character-set=utf8
|
32
|
+
|
33
|
+
[myisamchk]
|
34
|
+
character-sets-dir=/usr/share/mariadb/charsets
|
35
|
+
|
36
|
+
[myisampack]
|
37
|
+
character-sets-dir=/usr/share/mariadb/charsets
|
38
|
+
|
39
|
+
# use [safe_mysqld] with mysql-3
|
40
|
+
[mysqld_safe]
|
41
|
+
err-log = /var/log/mysql/mysqld.err
|
42
|
+
|
43
|
+
# add a section [mysqld-4.1] or [mysqld-5.0] for specific configurations
|
44
|
+
[mysqld]
|
45
|
+
expire_logs_days = 30
|
46
|
+
character-set-server = utf8
|
47
|
+
user = mysql
|
48
|
+
port = 3306
|
49
|
+
socket = /var/run/mysqld/mysqld.sock
|
50
|
+
pid-file = /var/run/mysqld/mysqld.pid
|
51
|
+
log-error = /var/log/mysql/mysqld.err
|
52
|
+
basedir = /usr
|
53
|
+
datadir = <%= @variables[:datadir] ? @variables[:datadir] : '/var/lib/mysql' %>
|
54
|
+
skip-external-locking
|
55
|
+
key_buffer_size = 16M
|
56
|
+
max_allowed_packet = 4M
|
57
|
+
table_open_cache = 400
|
58
|
+
sort_buffer_size = 512K
|
59
|
+
net_buffer_length = 16K
|
60
|
+
read_buffer_size = 256K
|
61
|
+
read_rnd_buffer_size = 512K
|
62
|
+
myisam_sort_buffer_size = 8M
|
63
|
+
lc_messages_dir = /usr/share/mariadb
|
64
|
+
#Set this to your desired error message language
|
65
|
+
lc_messages = en_US
|
66
|
+
|
67
|
+
# security:
|
68
|
+
# using "localhost" in connects uses sockets by default
|
69
|
+
# skip-networking
|
70
|
+
bind-address = <%= @variables[:bind_address] ? @variables[:bind_address] : '127.0.0.1' %>
|
71
|
+
skip-name-resolve
|
72
|
+
|
73
|
+
log-bin = /var/log/mysql/mysql-bin.log
|
74
|
+
binlog_format = MIXED
|
75
|
+
binlog_expire_logs_seconds = 604800 # 7 days binlogs
|
76
|
+
server-id = 1
|
77
|
+
|
78
|
+
# point the following paths to different dedicated disks
|
79
|
+
tmpdir = /tmp/
|
80
|
+
#log-update = /path-to-dedicated-directory/hostname
|
81
|
+
|
82
|
+
# you need the debug USE flag enabled to use the following directives,
|
83
|
+
# if needed, uncomment them, start the server and issue
|
84
|
+
# #tail -f /tmp/mysqld.sql /tmp/mysqld.trace
|
85
|
+
# this will show you *exactly* what's happening in your server ;)
|
86
|
+
|
87
|
+
#log = /tmp/mysqld.sql
|
88
|
+
#gdb
|
89
|
+
#debug = d:t:i:o,/tmp/mysqld.trace
|
90
|
+
#one-thread
|
91
|
+
|
92
|
+
# the rest of the innodb config follows:
|
93
|
+
# don't eat too much memory, we're trying to be safe on 64Mb boxes
|
94
|
+
# you might want to bump this up a bit on boxes with more RAM
|
95
|
+
innodb_buffer_pool_size = 128M
|
96
|
+
#
|
97
|
+
# i'd like to use /var/lib/mysql/innodb, but that is seen as a database :-(
|
98
|
+
# and upstream wants things to be under /var/lib/mysql/, so that's the route
|
99
|
+
# we have to take for the moment
|
100
|
+
#innodb_data_home_dir = /var/lib/mysql/
|
101
|
+
#innodb_log_arch_dir = /var/lib/mysql/
|
102
|
+
#innodb_log_group_home_dir = /var/lib/mysql/
|
103
|
+
# you may wish to change this size to be more suitable for your system
|
104
|
+
# the max is there to avoid run-away growth on your machine
|
105
|
+
innodb_data_file_path = ibdata1:10M:autoextend:max:128M
|
106
|
+
# we keep this at around 25% of of innodb_buffer_pool_size
|
107
|
+
# sensible values range from 1MB to (1/innodb_log_files_in_group*innodb_buffer_pool_size)
|
108
|
+
innodb_log_file_size = 48M
|
109
|
+
# this is the default, increase it if you have very large transactions going on
|
110
|
+
innodb_log_buffer_size = 8M
|
111
|
+
# see the innodb config docs, the other options are not always safe
|
112
|
+
innodb_flush_log_at_trx_commit = 1
|
113
|
+
innodb_lock_wait_timeout = 50
|
114
|
+
innodb_file_per_table
|
115
|
+
|
116
|
+
# Uncomment this to get FEDERATED engine support
|
117
|
+
#plugin-load=federated=ha_federated.so
|
118
|
+
#loose-federated
|
119
|
+
|
120
|
+
[mysqldump]
|
121
|
+
quick
|
122
|
+
max_allowed_packet = 16M
|
123
|
+
|
124
|
+
[mysql]
|
125
|
+
# uncomment the next directive if you are not familiar with SQL
|
126
|
+
#safe-updates
|
127
|
+
|
128
|
+
[isamchk]
|
129
|
+
key_buffer_size = 20M
|
130
|
+
sort_buffer_size = 20M
|
131
|
+
read_buffer = 2M
|
132
|
+
write_buffer = 2M
|
133
|
+
|
134
|
+
[myisamchk]
|
135
|
+
key_buffer_size = 20M
|
136
|
+
sort_buffer_size = 20M
|
137
|
+
read_buffer_size = 2M
|
138
|
+
write_buffer_size = 2M
|
139
|
+
|
140
|
+
[mysqlhotcopy]
|
141
|
+
interactive-timeout
|
142
|
+
|
143
|
+
[mariadb]
|
@@ -0,0 +1,11 @@
|
|
1
|
+
[mysql]
|
2
|
+
<%= @variables[:host] ? "host=\"#{@variables[:host]}\"\n" : '' -%>
|
3
|
+
<%= @variables[:user] ? "user=\"#{@variables[:user]}\"\n" : '' -%>
|
4
|
+
<%= @variables[:pass] ? "password=\"#{@variables[:pass]}\"\n" : '' -%>
|
5
|
+
<%= @variables[:port] ? "port=\"#{@variables[:port]}\"\n" : '' -%>
|
6
|
+
|
7
|
+
[client]
|
8
|
+
<%= @variables[:host] ? "host=\"#{@variables[:host]}\"\n" : '' -%>
|
9
|
+
<%= @variables[:user] ? "user=\"#{@variables[:user]}\"\n" : '' -%>
|
10
|
+
<%= @variables[:pass] ? "password=\"#{@variables[:pass]}\"\n" : '' -%>
|
11
|
+
<%= @variables[:port] ? "port=\"#{@variables[:port]}\"\n" : '' -%>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
DROP DATABASE IF EXISTS test;
|
2
|
+
|
3
|
+
<% @variables.each do |mysql| -%>
|
4
|
+
<% if mysql[:action] == 'grant' -%>
|
5
|
+
|
6
|
+
CREATE DATABASE IF NOT EXISTS `<%= mysql[:database] %>`;
|
7
|
+
GRANT <%= mysql[:grants].join(', ') %>
|
8
|
+
ON `<%= mysql[:database] %>`.*
|
9
|
+
TO `<%= mysql[:user] %>`@`<%= mysql[:host] %>`
|
10
|
+
IDENTIFIED BY '<%= DanarchyDeploy::Helpers.decode_base64(mysql[:password]) %>';
|
11
|
+
|
12
|
+
<% elsif mysql[:action] == 'revoke' -%>
|
13
|
+
|
14
|
+
REVOKE <%= mysql[:grants].join(', ') %>
|
15
|
+
ON `<%= mysql[:database] %>`.*
|
16
|
+
FROM `<%= mysql[:user] %>`@`<%= mysql[:host] %>`;
|
17
|
+
|
18
|
+
<% elsif mysql[:action] == 'drop' %>
|
19
|
+
|
20
|
+
DROP DATABASE IF EXISTS <%= mysql[:database] %>;
|
21
|
+
REVOKE ALL PRIVILEGES
|
22
|
+
ON `<%= mysql[:database] %>`.*
|
23
|
+
FROM `<%= mysql[:user] %>`@`<%= mysql[:host] %>`;
|
24
|
+
DROP USER `<%= mysql[:user] %>`;
|
25
|
+
|
26
|
+
<% elsif mysql[:action] == 'dropuser' %>
|
27
|
+
|
28
|
+
DROP USER IF EXISTS `<%= mysql[:user] %>`@`<%= mysql[:host] %>`;
|
29
|
+
|
30
|
+
<% end -%>
|
31
|
+
<% end -%>
|
32
|
+
|
33
|
+
FLUSH PRIVILEGES;
|
@@ -0,0 +1,52 @@
|
|
1
|
+
DROP DATABASE IF EXISTS test;
|
2
|
+
|
3
|
+
<% @variables.each do |mysql| -%>
|
4
|
+
<% if mysql[:action] == 'grant' -%>
|
5
|
+
|
6
|
+
CREATE DATABASE IF NOT EXISTS `<%= mysql[:database] %>`;
|
7
|
+
GRANT <%= mysql[:grants].join(', ') %>
|
8
|
+
ON `<%= mysql[:database] %>`.*
|
9
|
+
TO `<%= mysql[:user] %>`@`<%= mysql[:host] %>`
|
10
|
+
IDENTIFIED BY '<%= DanarchyDeploy::Helpers.decode_base64(mysql[:password]) %>';
|
11
|
+
|
12
|
+
<% elsif mysql[:action] == 'revoke' -%>
|
13
|
+
|
14
|
+
REVOKE <%= mysql[:grants].join(', ') %>
|
15
|
+
ON `<%= mysql[:database] %>`.*
|
16
|
+
FROM `<%= mysql[:user] %>`@`<%= mysql[:host] %>`;
|
17
|
+
|
18
|
+
<% elsif mysql[:action] == 'drop' %>
|
19
|
+
|
20
|
+
DROP DATABASE IF EXISTS <%= mysql[:database] %>;
|
21
|
+
REVOKE ALL PRIVILEGES
|
22
|
+
ON `<%= mysql[:database] %>`.*
|
23
|
+
FROM `<%= mysql[:user] %>`@`<%= mysql[:host] %>`;
|
24
|
+
DROP USER `<%= mysql[:user] %>`;
|
25
|
+
|
26
|
+
<% elsif mysql[:action] == 'dropuser' %>
|
27
|
+
|
28
|
+
DROP USER IF EXISTS `<%= mysql[:user] %>`@`<%= mysql[:host] %>`;
|
29
|
+
|
30
|
+
<% end -%>
|
31
|
+
|
32
|
+
# Cleanup user privileges without grants
|
33
|
+
SET @keep_hosts = NULL;
|
34
|
+
SELECT GROUP_CONCAT(Host) INTO @keep_hosts
|
35
|
+
FROM (
|
36
|
+
SELECT Host FROM mysql.db
|
37
|
+
WHERE User = '<%= mysql[:user] %>'
|
38
|
+
UNION
|
39
|
+
SELECT Host FROM mysql.tables_priv
|
40
|
+
WHERE User = '<%= mysql[:user] %>'
|
41
|
+
) AS T;
|
42
|
+
|
43
|
+
SET @drop_users = SELECT GROUP_CONCAT('\'', user, '\'@\'', host, '\'') FROM mysql.user
|
44
|
+
WHERE User = '<%= mysql[:user] %>'
|
45
|
+
AND NOT FIND_IN_SET(Host, @keep_hosts);
|
46
|
+
PREPARE stmt1 FROM @drop_users;
|
47
|
+
EXECUTE stmt1;
|
48
|
+
DEALLOCATE PREPARE stmt1;
|
49
|
+
|
50
|
+
<% end -%>
|
51
|
+
|
52
|
+
FLUSH PRIVILEGES;
|
@@ -0,0 +1,48 @@
|
|
1
|
+
user <%= @variables[:web_user] ? @variables[:web_user] : 'nginx' %>;
|
2
|
+
worker_processes auto;
|
3
|
+
|
4
|
+
error_log /var/log/nginx/error_log info;
|
5
|
+
|
6
|
+
events {
|
7
|
+
worker_connections 1024;
|
8
|
+
use epoll;
|
9
|
+
|
10
|
+
}
|
11
|
+
|
12
|
+
http {
|
13
|
+
include /etc/nginx/mime.types;
|
14
|
+
default_type text/html;
|
15
|
+
|
16
|
+
log_format main
|
17
|
+
'$remote_addr - $remote_user [$time_local] '
|
18
|
+
'"$request" $status $bytes_sent '
|
19
|
+
'"$http_referer" "$http_user_agent" '
|
20
|
+
'"$gzip_ratio"';
|
21
|
+
|
22
|
+
client_header_timeout 10m;
|
23
|
+
client_body_timeout 10m;
|
24
|
+
client_max_body_size <%= @variables[:client_max_body_size] ? @variables[:client_max_body_size] : '32mm' %>;
|
25
|
+
send_timeout 10m;
|
26
|
+
|
27
|
+
connection_pool_size 256;
|
28
|
+
client_header_buffer_size 1k;
|
29
|
+
large_client_header_buffers 4 2k;
|
30
|
+
request_pool_size 4k;
|
31
|
+
|
32
|
+
gzip on;
|
33
|
+
|
34
|
+
output_buffers 1 32k;
|
35
|
+
postpone_output 1460;
|
36
|
+
|
37
|
+
sendfile on;
|
38
|
+
tcp_nopush on;
|
39
|
+
tcp_nodelay on;
|
40
|
+
|
41
|
+
keepalive_timeout 75 20;
|
42
|
+
|
43
|
+
ignore_invalid_headers on;
|
44
|
+
|
45
|
+
index index.html;
|
46
|
+
|
47
|
+
include /home/*/nginx/sites-enabled/*.conf;
|
48
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
if [[ ${UID} != 0 ]]; then
|
4
|
+
echo 'Run this script as root!'
|
5
|
+
exit 1
|
6
|
+
fi
|
7
|
+
|
8
|
+
postfix upgrade-configuration
|
9
|
+
postfix check
|
10
|
+
|
11
|
+
newaliases
|
12
|
+
|
13
|
+
if [[ $(which rc-service) ]]; then
|
14
|
+
rc-service postfix restart
|
15
|
+
elif [[ $(which systemctl) ]]; then
|
16
|
+
systemctl restart postfix
|
17
|
+
else
|
18
|
+
echo 'Unable to determine init system! Restart postfix manually.'
|
19
|
+
fi
|
@@ -0,0 +1,41 @@
|
|
1
|
+
|
2
|
+
compatibility_level = 3.8
|
3
|
+
|
4
|
+
|
5
|
+
queue_directory = /var/spool/postfix
|
6
|
+
command_directory = /usr/sbin
|
7
|
+
daemon_directory = /usr/libexec/postfix
|
8
|
+
data_directory = /var/lib/postfix
|
9
|
+
|
10
|
+
mail_owner = postfix
|
11
|
+
myhostname = localhost
|
12
|
+
mydomain = localdomain
|
13
|
+
|
14
|
+
inet_interfaces = $myhostname, localhost
|
15
|
+
mydestination = $myhostname, localhost.$mydomain, localhost
|
16
|
+
|
17
|
+
unknown_local_recipient_reject_code = 550
|
18
|
+
mynetworks_style = host
|
19
|
+
default_transport = error:outside mail is not deliverable
|
20
|
+
|
21
|
+
debug_peer_level = 2
|
22
|
+
debugger_command =
|
23
|
+
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
|
24
|
+
ddd $daemon_directory/$process_name $process_id & sleep 5
|
25
|
+
|
26
|
+
|
27
|
+
sendmail_path = /usr/sbin/sendmail
|
28
|
+
newaliases_path = /usr/bin/newaliases
|
29
|
+
mailq_path = /usr/bin/mailq
|
30
|
+
|
31
|
+
setgid_group = postdrop
|
32
|
+
html_directory = no
|
33
|
+
|
34
|
+
manpage_directory = /usr/share/man
|
35
|
+
sample_directory = /etc/postfix
|
36
|
+
|
37
|
+
readme_directory = no
|
38
|
+
inet_protocols = ipv4
|
39
|
+
shlib_directory = /usr/lib64/postfix/${mail_version}
|
40
|
+
meta_directory = /etc/postfix
|
41
|
+
home_mailbox = .maildir/
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= @variables[:hostname] %>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
|
2
|
+
biff = no
|
3
|
+
|
4
|
+
# appending .domain is the MUA's job.
|
5
|
+
append_dot_mydomain = no
|
6
|
+
|
7
|
+
# Uncomment the next line to generate \"delayed mail\" warnings
|
8
|
+
#delay_warning_time = 4h
|
9
|
+
|
10
|
+
readme_directory = no
|
11
|
+
|
12
|
+
# TLS parameters
|
13
|
+
smtpd_tls_cert_file = <%= @variables[:ssl_cert] %>
|
14
|
+
smtpd_tls_key_file = <%= @variables[:ssl_key] %>
|
15
|
+
smtpd_use_tls = <%= @variables[:use_tls] || 'yes' %>
|
16
|
+
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
|
17
|
+
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
|
18
|
+
|
19
|
+
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
|
20
|
+
# information on enabling SSL in the smtp client.
|
21
|
+
|
22
|
+
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
|
23
|
+
myhostname = <%= @variables[:hostname] %>
|
24
|
+
alias_maps = hash:/etc/aliases
|
25
|
+
alias_database = hash:/etc/aliases
|
26
|
+
myorigin = /etc/mailname
|
27
|
+
mydestination = <%= @variables[:hostname] %>, localhost
|
28
|
+
relayhost = <%= @variables[:relayhost] %>
|
29
|
+
mynetworks = <%= @variables[:mynetworks] %> 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
|
30
|
+
mailbox_size_limit = 0
|
31
|
+
recipient_delimiter = +
|
32
|
+
inet_interfaces = all
|
33
|
+
inet_protocols = ipv4
|