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.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/.asdf_versions.json +5 -0
  3. data/.tool-versions +1 -0
  4. data/CHANGELOG.md +15 -0
  5. data/Gemfile.lock +9 -8
  6. data/danarchy_deploy.gemspec +4 -4
  7. data/lib/danarchy_deploy/groups.rb +0 -1
  8. data/lib/danarchy_deploy/services/init/openrc.rb +10 -6
  9. data/lib/danarchy_deploy/services/init.rb +28 -18
  10. data/lib/danarchy_deploy/services.rb +0 -1
  11. data/lib/danarchy_deploy/system/centos.rb +7 -0
  12. data/lib/danarchy_deploy/system/debian.rb +6 -0
  13. data/lib/danarchy_deploy/system/gentoo.rb +83 -23
  14. data/lib/danarchy_deploy/system/opensuse.rb +6 -0
  15. data/lib/danarchy_deploy/system.rb +22 -10
  16. data/lib/danarchy_deploy/templater.rb +26 -9
  17. data/lib/danarchy_deploy/users.rb +50 -42
  18. data/lib/danarchy_deploy/version.rb +1 -1
  19. data/lib/danarchy_deploy.rb +61 -19
  20. data/templates/applications/nginx/domain.conf.erb +38 -0
  21. data/templates/applications/php/phpfpm.conf.erb +19 -0
  22. data/templates/applications/php/user.conf.erb +19 -0
  23. data/templates/applications/wordpress/mysql_user_privileges.sql.erb +2 -0
  24. data/templates/applications/wordpress/wp-config.php.erb +82 -0
  25. data/templates/asdf/asdf.sh.erb +52 -0
  26. data/templates/deploy_template.json +76 -50
  27. data/templates/distcc/distccd.erb +14 -0
  28. data/templates/distcc/hosts.erb +2 -0
  29. data/templates/portage/make.conf.erb +30 -0
  30. data/templates/portage/package.use/bindist +3 -0
  31. data/templates/portage/package.use/documentation +3 -0
  32. data/templates/services/memcached/memcached.erb +40 -0
  33. data/templates/services/mysql/my.cnf.erb +143 -0
  34. data/templates/services/mysql/root_my.cnf.erb +11 -0
  35. data/templates/services/mysql/user_db_grants.sql.erb +33 -0
  36. data/templates/services/mysql/user_db_grants.sql.erb_cleanupUsers +52 -0
  37. data/templates/services/nginx/nginx.conf.erb +48 -0
  38. data/templates/services/php/php-fpm.conf.erb +2 -0
  39. data/templates/services/postfix/localmail.initial_setup.sh +19 -0
  40. data/templates/services/postfix/localmail.main.cf.erb +41 -0
  41. data/templates/services/postfix/mailname.erb +1 -0
  42. data/templates/services/postfix/mailrelayhost_main.cf.erb +33 -0
  43. data/templates/services/postfix/main.cf.erb +28 -0
  44. data/templates/services/postfix/master.cf.erb +124 -0
  45. data/templates/services/postfix/mysql-virtual-alias-maps.cf.erb +5 -0
  46. data/templates/services/postfix/mysql-virtual-mailbox-domains.cf.erb +5 -0
  47. data/templates/services/postfix/mysql-virtual-mailbox-maps.cf.erb +5 -0
  48. data/templates/system/authorized_keys.erb +5 -0
  49. data/templates/system/crontab.erb +8 -0
  50. data/templates/system/dmcrypt.erb +17 -0
  51. data/templates/system/exports.erb +4 -0
  52. data/templates/system/fstab.erb +4 -0
  53. data/templates/system/sudoers.erb +5 -0
  54. metadata +44 -11
  55. data/.ruby-gemset +0 -1
  56. data/.ruby-version +0 -1
  57. /data/bin/{setup → setup-dd} +0 -0
@@ -0,0 +1,28 @@
1
+ smtpd_banner = $myhostname ESMTP $mail_name
2
+ biff = no
3
+
4
+ # TLS parameters
5
+ smtpd_use_tls = <%= @variables[:use_tls] %>
6
+ smtpd_tls_auth_only = <%= @variables[:use_tls] %>
7
+ smtpd_tls_cert_file = <%= @variables[:ssl_cert] %>
8
+ smtpd_tls_key_file = <%= @variables[:ssl_key] %>
9
+ smtpd_tls_CAfile = <%= @variables[:ssl_cacert] %>
10
+
11
+ smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
12
+ smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
13
+
14
+ # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
15
+ # information on enabling SSL in the smtp client.
16
+
17
+ smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
18
+ myhostname = <%= @variables[:hostname] %>
19
+ alias_maps = hash:/etc/aliases
20
+ alias_database = hash:/etc/aliases
21
+ myorigin = /etc/mailname
22
+ mydestination = <%= @variables[:hostname] %>, localhost
23
+ relayhost = <%= @variables[:relayhost] %>
24
+ mynetworks = <%= @variables[:mynetworks] %> 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
25
+ mailbox_size_limit = 0
26
+ recipient_delimiter = +
27
+ inet_interfaces = all
28
+ inet_protocols = ipv4
@@ -0,0 +1,124 @@
1
+ #
2
+ # Postfix master process configuration file. For details on the format
3
+ # of the file, see the master(5) manual page (command: "man 5 master" or
4
+ # on-line: http://www.postfix.org/master.5.html).
5
+ #
6
+ # Do not forget to execute "postfix reload" after editing this file.
7
+ #
8
+ # ==========================================================================
9
+ # service type private unpriv chroot wakeup maxproc command + args
10
+ # (yes) (yes) (yes) (never) (100)
11
+ # ==========================================================================
12
+ smtp inet n - - - - smtpd
13
+ #smtp inet n - - - 1 postscreen
14
+ #smtpd pass - - - - - smtpd
15
+ #dnsblog unix - - - - 0 dnsblog
16
+ #tlsproxy unix - - - - 0 tlsproxy
17
+ submission inet n - - - - smtpd
18
+ -o syslog_name=postfix/submission
19
+ -o smtpd_tls_security_level=encrypt
20
+ # -o smtpd_sasl_auth_enable=yes
21
+ # -o smtpd_reject_unlisted_recipient=no
22
+ # -o smtpd_client_restrictions=$mua_client_restrictions
23
+ # -o smtpd_helo_restrictions=$mua_helo_restrictions
24
+ # -o smtpd_sender_restrictions=$mua_sender_restrictions
25
+ # -o smtpd_recipient_restrictions=
26
+ # -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
27
+ # -o milter_macro_daemon_name=ORIGINATING
28
+ smtps inet n - - - - smtpd
29
+ -o syslog_name=postfix/smtps
30
+ # -o smtpd_tls_wrappermode=yes
31
+ # -o smtpd_sasl_auth_enable=yes
32
+ # -o smtpd_reject_unlisted_recipient=no
33
+ # -o smtpd_client_restrictions=$mua_client_restrictions
34
+ # -o smtpd_helo_restrictions=$mua_helo_restrictions
35
+ # -o smtpd_sender_restrictions=$mua_sender_restrictions
36
+ # -o smtpd_recipient_restrictions=
37
+ # -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
38
+ # -o milter_macro_daemon_name=ORIGINATING
39
+ #628 inet n - - - - qmqpd
40
+ pickup unix n - - 60 1 pickup
41
+ cleanup unix n - - - 0 cleanup
42
+ qmgr unix n - n 300 1 qmgr
43
+ #qmgr unix n - n 300 1 oqmgr
44
+ tlsmgr unix - - - 1000? 1 tlsmgr
45
+ rewrite unix - - - - - trivial-rewrite
46
+ bounce unix - - - - 0 bounce
47
+ defer unix - - - - 0 bounce
48
+ trace unix - - - - 0 bounce
49
+ verify unix - - - - 1 verify
50
+ flush unix n - - 1000? 0 flush
51
+ proxymap unix - - n - - proxymap
52
+ proxywrite unix - - n - 1 proxymap
53
+ smtp unix - - - - - smtp
54
+ relay unix - - - - - smtp
55
+ # -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
56
+ showq unix n - - - - showq
57
+ error unix - - - - - error
58
+ retry unix - - - - - error
59
+ discard unix - - - - - discard
60
+ local unix - n n - - local
61
+ virtual unix - n n - - virtual
62
+ lmtp unix - - - - - lmtp
63
+ anvil unix - - - - 1 anvil
64
+ scache unix - - - - 1 scache
65
+ #
66
+ # ====================================================================
67
+ # Interfaces to non-Postfix software. Be sure to examine the manual
68
+ # pages of the non-Postfix software to find out what options it wants.
69
+ #
70
+ # Many of the following services use the Postfix pipe(8) delivery
71
+ # agent. See the pipe(8) man page for information about ${recipient}
72
+ # and other message envelope options.
73
+ # ====================================================================
74
+ #
75
+ # maildrop. See the Postfix MAILDROP_README file for details.
76
+ # Also specify in main.cf: maildrop_destination_recipient_limit=1
77
+ #
78
+ maildrop unix - n n - - pipe
79
+ flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
80
+ #
81
+ # ====================================================================
82
+ #
83
+ # Recent Cyrus versions can use the existing "lmtp" master.cf entry.
84
+ #
85
+ # Specify in cyrus.conf:
86
+ # lmtp cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
87
+ #
88
+ # Specify in main.cf one or more of the following:
89
+ # mailbox_transport = lmtp:inet:localhost
90
+ # virtual_transport = lmtp:inet:localhost
91
+ #
92
+ # ====================================================================
93
+ #
94
+ # Cyrus 2.1.5 (Amos Gouaux)
95
+ # Also specify in main.cf: cyrus_destination_recipient_limit=1
96
+ #
97
+ #cyrus unix - n n - - pipe
98
+ # user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
99
+ #
100
+ # ====================================================================
101
+ # Old example of delivery via Cyrus.
102
+ #
103
+ #old-cyrus unix - n n - - pipe
104
+ # flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
105
+ #
106
+ # ====================================================================
107
+ #
108
+ # See the Postfix UUCP_README file for configuration details.
109
+ #
110
+ uucp unix - n n - - pipe
111
+ flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
112
+ #
113
+ # Other external delivery methods.
114
+ #
115
+ ifmail unix - n n - - pipe
116
+ flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
117
+ bsmtp unix - n n - - pipe
118
+ flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
119
+ scalemail-backend unix - n n - 2 pipe
120
+ flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
121
+ mailman unix - n n - - pipe
122
+ flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
123
+ ${nexthop} ${user}
124
+
@@ -0,0 +1,5 @@
1
+ user = <%= @variables[:user] %>
2
+ password = <%= @variables[:password] %>
3
+ hosts = <%= @variables[:hosts] %>
4
+ dbname = <%= @variables[:dbname] %>
5
+ query = SELECT destination FROM aliases WHERE source='%s'
@@ -0,0 +1,5 @@
1
+ user = <%= @variables[:user] %>
2
+ password = <%= @variables[:password] %>
3
+ hosts = <%= @variables[:hosts] %>
4
+ dbname = <%= @variables[:dbname] %>
5
+ query = SELECT 1 FROM domains WHERE domain='%s'
@@ -0,0 +1,5 @@
1
+ user = <%= @variables[:user] %>
2
+ password = <%= @variables[:password] %>
3
+ hosts = <%= @variables[:hosts] %>
4
+ dbname = <%= @variables[:dbname] %>
5
+ query = SELECT 1 FROM users WHERE email='%s'
@@ -0,0 +1,5 @@
1
+ # Deployed by dAnarchyDeploy
2
+
3
+ <% @variables[:authorized_keys].each do |key| -%>
4
+ <%= "#{key}" %>
5
+ <% end -%>
@@ -0,0 +1,8 @@
1
+ # DanarchyDeploy crontab
2
+ SHELL=<%= @variables[:shell] || '/bin/bash' %>
3
+ PATH=<%= @variables[:path] || '/bin:/usr/bin' %>
4
+ BASH_ENV=<%= @variables[:env] || '~/.bashrc' %>
5
+
6
+ <% @variables[:jobs].each do |job| -%>
7
+ <%= "#{job[:schedule]}\t#{job[:command]}" %>
8
+ <% end -%>
@@ -0,0 +1,17 @@
1
+ # DanarchyDeploy dmcrypt
2
+ # How long to wait for each timeout (in seconds).
3
+ dmcrypt_key_timeout=1
4
+
5
+ # Max number of checks to perform (see dmcrypt_key_timeout).
6
+ #dmcrypt_max_timeout=300
7
+
8
+ # Number of password retries.
9
+ dmcrypt_retries=2
10
+
11
+ <% @variables.each do |device, volume| -%>
12
+ <%= "# Encrypted volume name|volgroup|device: #{device}" %>
13
+ <% volume[:variables].each do |key, value| -%>
14
+ <%= key -%>=<%= value %>
15
+ <% end -%>
16
+ <%# intentionally left blank %>
17
+ <% end -%>
@@ -0,0 +1,4 @@
1
+ # DanarchyDeploy NFS exports
2
+ <% @variables.each do |export| -%>
3
+ <%= "#{export[:filesystem]}\t#{export[:clients]}(#{export[:options]})" %>
4
+ <% end -%>
@@ -0,0 +1,4 @@
1
+ # DanarchyDeploy fstab
2
+ <% @variables.each do |mount| -%>
3
+ <%= "#{mount[:filesystem]}\t#{mount[:mountpoint]}\t#{mount[:type]}\t#{mount[:opts]}\t#{mount[:'dump/pass']}" %>
4
+ <% end -%>
@@ -0,0 +1,5 @@
1
+ # Deployed by dAnarchyDeploy
2
+
3
+ <% @variables[:rules].each do |r| -%>
4
+ <%= "#{r}" %>
5
+ <% end -%>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: danarchy_deploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan James
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-16 00:00:00.000000000 Z
11
+ date: 2024-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: danarchy_couchdb
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '2.3'
33
+ version: '2.5'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '2.3'
40
+ version: '2.5'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.17'
61
+ version: '2.20'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.17'
68
+ version: '2.20'
69
69
  description: DanarchyDeploy intends to simplify Gentoo Linux (and other distro) deployments
70
70
  down to a single template from an input JSON or YAML file, or from a CouchDB file.
71
71
  email:
@@ -73,14 +73,14 @@ email:
73
73
  executables:
74
74
  - console-dd
75
75
  - danarchy_deploy
76
- - setup
76
+ - setup-dd
77
77
  extensions: []
78
78
  extra_rdoc_files: []
79
79
  files:
80
+ - ".asdf_versions.json"
80
81
  - ".gitignore"
81
82
  - ".rspec"
82
- - ".ruby-gemset"
83
- - ".ruby-version"
83
+ - ".tool-versions"
84
84
  - ".travis.yml"
85
85
  - CHANGELOG.md
86
86
  - Gemfile
@@ -90,7 +90,7 @@ files:
90
90
  - Rakefile
91
91
  - bin/console-dd
92
92
  - bin/danarchy_deploy
93
- - bin/setup
93
+ - bin/setup-dd
94
94
  - danarchy_deploy.gemspec
95
95
  - lib/danarchy_deploy.rb
96
96
  - lib/danarchy_deploy/applicator.rb
@@ -126,7 +126,40 @@ files:
126
126
  - lib/danarchy_deploy/templater.rb
127
127
  - lib/danarchy_deploy/users.rb
128
128
  - lib/danarchy_deploy/version.rb
129
+ - templates/applications/nginx/domain.conf.erb
130
+ - templates/applications/php/phpfpm.conf.erb
131
+ - templates/applications/php/user.conf.erb
132
+ - templates/applications/wordpress/mysql_user_privileges.sql.erb
133
+ - templates/applications/wordpress/wp-config.php.erb
134
+ - templates/asdf/asdf.sh.erb
129
135
  - templates/deploy_template.json
136
+ - templates/distcc/distccd.erb
137
+ - templates/distcc/hosts.erb
138
+ - templates/portage/make.conf.erb
139
+ - templates/portage/package.use/bindist
140
+ - templates/portage/package.use/documentation
141
+ - templates/services/memcached/memcached.erb
142
+ - templates/services/mysql/my.cnf.erb
143
+ - templates/services/mysql/root_my.cnf.erb
144
+ - templates/services/mysql/user_db_grants.sql.erb
145
+ - templates/services/mysql/user_db_grants.sql.erb_cleanupUsers
146
+ - templates/services/nginx/nginx.conf.erb
147
+ - templates/services/php/php-fpm.conf.erb
148
+ - templates/services/postfix/localmail.initial_setup.sh
149
+ - templates/services/postfix/localmail.main.cf.erb
150
+ - templates/services/postfix/mailname.erb
151
+ - templates/services/postfix/mailrelayhost_main.cf.erb
152
+ - templates/services/postfix/main.cf.erb
153
+ - templates/services/postfix/master.cf.erb
154
+ - templates/services/postfix/mysql-virtual-alias-maps.cf.erb
155
+ - templates/services/postfix/mysql-virtual-mailbox-domains.cf.erb
156
+ - templates/services/postfix/mysql-virtual-mailbox-maps.cf.erb
157
+ - templates/system/authorized_keys.erb
158
+ - templates/system/crontab.erb
159
+ - templates/system/dmcrypt.erb
160
+ - templates/system/exports.erb
161
+ - templates/system/fstab.erb
162
+ - templates/system/sudoers.erb
130
163
  homepage: https://github.com/danarchy85/danarchy_deploy
131
164
  licenses:
132
165
  - MIT
@@ -147,7 +180,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
180
  - !ruby/object:Gem::Version
148
181
  version: '0'
149
182
  requirements: []
150
- rubygems_version: 3.1.4
183
+ rubygems_version: 3.5.11
151
184
  signing_key:
152
185
  specification_version: 4
153
186
  summary: Pushes deployments locally or remotely based on a JSON/YAML/CouchDB template.
data/.ruby-gemset DELETED
@@ -1 +0,0 @@
1
- danarchy_deploy
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- ruby-2.7.2
File without changes