danarchy_deploy 0.2.7 → 0.2.9

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 (61) 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/bin/danarchy_deploy +0 -1
  7. data/danarchy_deploy.gemspec +4 -4
  8. data/lib/danarchy_deploy/applicator/ssl.rb +1 -1
  9. data/lib/danarchy_deploy/archiver.rb +1 -1
  10. data/lib/danarchy_deploy/groups.rb +0 -1
  11. data/lib/danarchy_deploy/services/init/openrc.rb +10 -6
  12. data/lib/danarchy_deploy/services/init.rb +28 -18
  13. data/lib/danarchy_deploy/services.rb +0 -1
  14. data/lib/danarchy_deploy/system/centos.rb +7 -0
  15. data/lib/danarchy_deploy/system/debian.rb +6 -0
  16. data/lib/danarchy_deploy/system/fstab.rb +15 -5
  17. data/lib/danarchy_deploy/system/gentoo.rb +84 -23
  18. data/lib/danarchy_deploy/system/opensuse.rb +6 -0
  19. data/lib/danarchy_deploy/system.rb +14 -9
  20. data/lib/danarchy_deploy/templater.rb +1 -2
  21. data/lib/danarchy_deploy/users.rb +50 -42
  22. data/lib/danarchy_deploy/version.rb +1 -1
  23. data/lib/danarchy_deploy.rb +63 -20
  24. data/templates/applications/nginx/domain.conf.erb +38 -0
  25. data/templates/applications/php/phpfpm.conf.erb +19 -0
  26. data/templates/applications/php/user.conf.erb +19 -0
  27. data/templates/applications/wordpress/mysql_user_privileges.sql.erb +2 -0
  28. data/templates/applications/wordpress/wp-config.php.erb +82 -0
  29. data/templates/asdf/asdf.sh.erb +52 -0
  30. data/templates/deploy_template.json +6 -7
  31. data/templates/distcc/distccd.erb +14 -0
  32. data/templates/distcc/hosts.erb +2 -0
  33. data/templates/portage/make.conf.erb +30 -0
  34. data/templates/portage/package.use/bindist +3 -0
  35. data/templates/portage/package.use/documentation +3 -0
  36. data/templates/services/memcached/memcached.erb +40 -0
  37. data/templates/services/mysql/my.cnf.erb +143 -0
  38. data/templates/services/mysql/root_my.cnf.erb +11 -0
  39. data/templates/services/mysql/user_db_grants.sql.erb +33 -0
  40. data/templates/services/mysql/user_db_grants.sql.erb_cleanupUsers +52 -0
  41. data/templates/services/nginx/nginx.conf.erb +48 -0
  42. data/templates/services/php/php-fpm.conf.erb +2 -0
  43. data/templates/services/postfix/localmail.initial_setup.sh +19 -0
  44. data/templates/services/postfix/localmail.main.cf.erb +41 -0
  45. data/templates/services/postfix/mailname.erb +1 -0
  46. data/templates/services/postfix/mailrelayhost_main.cf.erb +33 -0
  47. data/templates/services/postfix/main.cf.erb +28 -0
  48. data/templates/services/postfix/master.cf.erb +124 -0
  49. data/templates/services/postfix/mysql-virtual-alias-maps.cf.erb +5 -0
  50. data/templates/services/postfix/mysql-virtual-mailbox-domains.cf.erb +5 -0
  51. data/templates/services/postfix/mysql-virtual-mailbox-maps.cf.erb +5 -0
  52. data/templates/system/authorized_keys.erb +5 -0
  53. data/templates/system/crontab.erb +8 -0
  54. data/templates/system/dmcrypt.erb +17 -0
  55. data/templates/system/exports.erb +4 -0
  56. data/templates/system/fstab.erb +4 -0
  57. data/templates/system/sudoers.erb +5 -0
  58. metadata +44 -11
  59. data/.ruby-gemset +0 -1
  60. data/.ruby-version +0 -1
  61. /data/bin/{setup → setup-dd} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7e103704d84bcb50319a7f6dae091e4655159c1ee83e0b28ae599280ab1c325d
4
- data.tar.gz: '084b77c73e50c58af4f38d8cd81be5cdbbcd6923a046b944f3b1c3eafaacb248'
3
+ metadata.gz: 1cebdd523daec796bb3189d1fce8b0f48296e575a0c84ec731a3983acf856868
4
+ data.tar.gz: aaf5be0aa79434f6982051ab9472b868f591c4e0025a2fe076210fccf94fa4be
5
5
  SHA512:
6
- metadata.gz: b24d195152bfd8ce9e63e946d393f6699c56914e6880b431e5ab93b4c557a292b73f3c6a5c6d21fa35fd3cf70f531daced888e1192bea86f0bcef6947e571b9e
7
- data.tar.gz: bcf97212adde19fbb712efb9b9864e1f8f26e22370ed5fd0ff435ea1a04cd065d78b9530ee1b2989afd2aadc4c72eeecbdfc67f52b698dd08af0d7ee5d1be930
6
+ metadata.gz: 0a08ce041b150b6033e6a6d644cd4f90682479fca8c214ede36c440e02eed573a3a9508ec432d219e9ba8097e73d901253c6ed1da9c12527c590f079dcf44395
7
+ data.tar.gz: ddbcf529c9b5a5612d3e6f455017e82fa98c870244fbfe6709e480bb07b9c787ffc5fd0ed53d686de796e3256646b309fa3dbb5493d4d9d55607fdf77b8ec8d9
@@ -0,0 +1,5 @@
1
+ {
2
+ "ruby": [
3
+ "latest:3.2.2"
4
+ ]
5
+ }
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 3.2.2
data/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ patch_0.2.9
2
+ - cleanup emerge --sync output
3
+ - change Date to Time
4
+ - fix hostnamectl set-hostname
5
+ - Fstab: skip formatting NFS mountpoints
6
+
7
+ patch_0.2.8
8
+ - Switch support from RVM to ASDF
9
+ - users.rb: use Templater to handle authorized_users and sudoers
10
+ - danarchy_deploy.rb: ignore WARNs in gem install
11
+ - danarchy_deploy.rb: use sudo -i to load environment
12
+ - Templater: add builtin templates
13
+ - Gentoo: wait_for_sync
14
+ - System::Init: OpenRC runlevel support
15
+
1
16
  patch_0.2.7
2
17
  - Patch Templater ERB.new for Ruby versions higher than 2.6
3
18
  - Allow builtin:: templates in Templater
data/Gemfile.lock CHANGED
@@ -1,26 +1,27 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- danarchy_deploy (0.2.6)
4
+ danarchy_deploy (0.2.8)
5
5
  danarchy_couchdb (~> 0.1)
6
- mongo (~> 2.17)
6
+ mongo (~> 2.20)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- bson (4.14.1)
11
+ bson (5.0.1)
12
12
  danarchy_couchdb (0.1.3)
13
- mongo (2.17.0)
14
- bson (>= 4.8.2, < 5.0.0)
15
- rake (13.0.6)
13
+ mongo (2.20.1)
14
+ bson (>= 4.14.1, < 6.0.0)
15
+ rake (13.2.1)
16
16
 
17
17
  PLATFORMS
18
+ ruby
18
19
  x86_64-linux
19
20
 
20
21
  DEPENDENCIES
21
- bundler (~> 2.3)
22
+ bundler (~> 2.5)
22
23
  danarchy_deploy!
23
24
  rake (~> 13.0)
24
25
 
25
26
  BUNDLED WITH
26
- 2.3.9
27
+ 2.5.11
data/bin/danarchy_deploy CHANGED
@@ -1,7 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  require_relative '../lib/danarchy_deploy'
3
3
  require 'danarchy_couchdb'
4
- require 'date'
5
4
  require 'optparse'
6
5
 
7
6
  deployment = nil
@@ -28,10 +28,10 @@ Gem::Specification.new do |spec|
28
28
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
29
29
  spec.require_paths = ["lib"]
30
30
 
31
- spec.add_dependency "danarchy_couchdb", "~> 0.1"
31
+ spec.add_dependency 'danarchy_couchdb', '~> 0.1'
32
32
 
33
- spec.add_development_dependency "bundler", "~> 2.3"
34
- spec.add_development_dependency "rake", "~> 13.0"
33
+ spec.add_development_dependency 'bundler', '~> 2.5'
34
+ spec.add_development_dependency 'rake', '~> 13.0'
35
35
 
36
- spec.add_runtime_dependency "mongo", "~> 2.17"
36
+ spec.add_runtime_dependency 'mongo', '~> 2.20'
37
37
  end
@@ -7,7 +7,7 @@ module DanarchyDeploy
7
7
  end
8
8
 
9
9
  class LetsEncrypt
10
- # DateTime.now > DateTime.parse(cert.grep(/Not After/).first.split(' : ').last) - 7
10
+ # Time.now > Time.parse(cert.grep(/Not After/).first.split(' : ').last) - 7
11
11
  end
12
12
  end
13
13
  end
@@ -10,7 +10,7 @@ module DanarchyDeploy
10
10
 
11
11
  tmparchive = false
12
12
  if !archive[:source] && archive[:data]
13
- archive[:source] = options[:deploy_dir] + "/.tmp_archive_#{DateTime.now.strftime("%Y%m%d_%H%M%S")}"
13
+ archive[:source] = options[:deploy_dir] + "/.tmp_archive_#{Time.now.strftime("%Y%m%d_%H%M%S")}"
14
14
  tmparchive = true
15
15
  data = DanarchyDeploy::Helpers.decode_base64(archive[:data])
16
16
  write_tmp_archive(archive[:source], data)
@@ -18,7 +18,6 @@ module DanarchyDeploy
18
18
  end
19
19
  end
20
20
 
21
- # [groupadd_result, groupdel_result]
22
21
  deployment
23
22
  end
24
23
 
@@ -3,9 +3,10 @@ module DanarchyDeploy
3
3
  module Services
4
4
  class Init
5
5
  class Openrc
6
- def initialize(service, options)
7
- @service = service
8
- @options = options
6
+ def initialize(service, runlevel, options)
7
+ @service = service
8
+ @runlevel = runlevel
9
+ @options = options
9
10
  end
10
11
 
11
12
  def status
@@ -58,13 +59,16 @@ module DanarchyDeploy
58
59
  end
59
60
 
60
61
  def enable
61
- cmd = "rc-update add #{@service} default"
62
+ cmd = "rc-update add #{@service} #{@runlevel}"
62
63
  DanarchyDeploy::Helpers.run_command(cmd, @options)
63
64
  end
64
65
 
65
66
  def disable
66
- cmd = "rc-update del #{@service} default"
67
- DanarchyDeploy::Helpers.run_command(cmd, @options)
67
+ Dir["/etc/runlevels/*/#{@service}"].each do |svc|
68
+ runlevel, service = svc.split('/')[3,4]
69
+ cmd = "rc-update del #{service} #{runlevel}"
70
+ DanarchyDeploy::Helpers.run_command(cmd, @options)
71
+ end
68
72
  end
69
73
  end
70
74
  end
@@ -10,42 +10,52 @@ module DanarchyDeploy
10
10
 
11
11
  deployment[:services].each do |service, params|
12
12
  next if ! params[:init]
13
- orig_actions = params[:init]
14
- puts "\n > Init actions for #{service}: #{params[:init].join(', ')}"
15
- params[:init].each do |action|
16
- puts " |+ Taking action: #{action} on #{service}"
13
+ if params[:init].class == Array
14
+ # one-time update for :init to new format
15
+ params[:init] = if deployment[:os] == 'gentoo'
16
+ { runlevel: 'default', actions: params[:init] }
17
+ else
18
+ { actions: params[:init] }
19
+ end
20
+ end
21
+
22
+ init_manager(deployment[:os], service, params[:init][:runlevel], options)
23
+ puts "\n > Init actions for #{service}: #{params[:init][:actions].join(', ')}"
24
+ params[:init][:actions].each do |action|
25
+ puts " |> Taking action: #{action} on #{service}"
17
26
  if options[:pretend]
18
- puts " Fake run: #{action} #{service}"
27
+ puts " |- Fake run: #{action} #{service}"
19
28
  else
20
- init_manager(deployment[:os], service, action, options)
29
+ init_run(action)
21
30
  end
22
31
  end
23
-
24
- params[:init] = orig_actions
25
32
  end
26
33
 
27
34
  deployment
28
35
  end
29
36
 
30
- def self.init_manager(os, service, action, options)
31
- init = if os == 'gentoo'
32
- DanarchyDeploy::Services::Init::Openrc.new(service, options)
33
- else
34
- DanarchyDeploy::Services::Init::Systemd.new(service, options)
35
- end
37
+ private
38
+ def self.init_manager(os, service, runlevel='default', options)
39
+ @init = if os == 'gentoo'
40
+ DanarchyDeploy::Services::Init::Openrc.new(service, runlevel, options)
41
+ else
42
+ DanarchyDeploy::Services::Init::Systemd.new(service, options)
43
+ end
44
+ end
36
45
 
37
- init_result = init.send(action)
46
+ def self.init_run(action)
47
+ init_result = @init.send(action)
38
48
 
39
49
  if stderr = init_result[:stderr]
40
50
  if stderr.include?('unknown function')
41
- puts " ! Action: #{action} not available for service: #{service}.\n" +
51
+ puts " ! Action: #{action} not available for service.\n" +
42
52
  " ! A restart may be needed! Otherwise, remove this action from the deployment.\n" +
43
53
  " ! Not taking any action here.\n"
44
54
  else
45
- abort(" ! Action: #{action} #{service} failed!")
55
+ abort(" ! Action: #{action} failed!")
46
56
  end
47
57
  else
48
- puts " |+ Action: #{action} #{service} succeeded."
58
+ puts " |+ Action: #{action} succeeded."
49
59
  end
50
60
  end
51
61
  end
@@ -10,7 +10,6 @@ module DanarchyDeploy
10
10
  puts "\n" + self.name
11
11
 
12
12
  deployment[:services].each do |service, params|
13
- next if service == :init
14
13
  puts "\nConfiguring service: #{service}"
15
14
 
16
15
  if params[:archives] && !params[:archives].empty?
@@ -6,12 +6,19 @@ module DanarchyDeploy
6
6
  puts "\n" + self.name
7
7
  puts "#{deployment[:os].capitalize} detected! Using yum."
8
8
  # needs more testing
9
+
10
+ set_hostname(deployment[:hostname]) if !options[:pretend]
9
11
  installer = 'yum install -y '
10
12
  updater = 'yum upgrade -y'
11
13
  cleaner = 'yum clean all'
12
14
 
13
15
  [installer, updater, cleaner]
14
16
  end
17
+
18
+ private
19
+ def set_hostname(hostname)
20
+ `hostnamectl set-hostname #{hostname}`
21
+ end
15
22
  end
16
23
  end
17
24
  end
@@ -7,6 +7,7 @@ module DanarchyDeploy
7
7
  puts "\n" + self.name
8
8
  puts "#{deployment[:os].capitalize} detected! Using apt."
9
9
 
10
+ set_hostname(deployment[:hostname]) if !options[:pretend]
10
11
  if deployment[:apt]
11
12
  if deployment[:apt][:templates]
12
13
  puts "\nChecking Apt configs."
@@ -56,6 +57,11 @@ module DanarchyDeploy
56
57
  end
57
58
  end
58
59
  end
60
+
61
+ private
62
+ def set_hostname(hostname)
63
+ `hostnamectl set-hostname #{hostname}`
64
+ end
59
65
  end
60
66
  end
61
67
  end
@@ -39,11 +39,7 @@ module DanarchyDeploy
39
39
  puts "\n > Formatting mountpoints"
40
40
 
41
41
  fstab[:mounts].each do |mount|
42
- fs_check = DanarchyDeploy::Helpers.run_command(
43
- "file -sL #{mount[:filesystem]}", options
44
- )
45
-
46
- if fs_check[:stdout] && fs_check[:stdout] =~ /.*data$/
42
+ if fs_check(mount, options) == true
47
43
  puts "\n > Formatting #{mount[:filesystem]}"
48
44
  mkfs = DanarchyDeploy::Helpers.run_command(
49
45
  "mkfs -t #{mount[:type]} #{mount[:filesystem]}", options
@@ -55,6 +51,20 @@ module DanarchyDeploy
55
51
  !Dir.exist?(mount[:mountpoint])
56
52
  end
57
53
  end
54
+
55
+ def self.fs_check(mount, options)
56
+ return false if mount[:type] =~ /^nfs/
57
+
58
+ fs_check = DanarchyDeploy::Helpers.run_command(
59
+ "file -sL #{mount[:filesystem]}", options
60
+ )
61
+
62
+ if fs_check[:stdout] && fs_check[:stdout] =~ /.*data$/
63
+ return true
64
+ else
65
+ return false
66
+ end
67
+ end
58
68
  end
59
69
  end
60
70
  end
@@ -6,12 +6,7 @@ module DanarchyDeploy
6
6
  puts "\n" + self.name
7
7
  puts 'Gentoo detected! Using emerge.'
8
8
 
9
- hostname = deployment[:hostname]
10
- if check_hostname(hostname) == false
11
- puts "Setting hostname to: #{hostname}"
12
- set_hostname(hostname)
13
- end
14
-
9
+ set_hostname(deployment[:hostname]) if !options[:pretend]
15
10
  installer = 'emerge --usepkg --buildpkg --quiet --noreplace '
16
11
  # This needs cpuid2cpuflags to build make.conf; don't --pretend here.
17
12
  system("qlist -I cpuid2cpuflags &>/dev/null || #{installer} cpuid2cpuflags &>/dev/null")
@@ -23,43 +18,109 @@ module DanarchyDeploy
23
18
  cleaner = 'emerge --depclean --quiet '
24
19
  cleaner += '--pretend ' if options[:pretend]
25
20
 
21
+ if emerge_sync_in_progress
22
+ puts "\n > Waiting for emerge sync to complete."
23
+ emerge_sync_wait
24
+ end
25
+
26
26
  if deployment[:portage]
27
27
  if deployment[:portage][:templates]
28
28
  puts "\nChecking Portage configs."
29
29
  DanarchyDeploy::Templater.new(deployment[:portage][:templates], options)
30
30
  end
31
31
 
32
- emerge_sync(options) if deployment[:portage][:sync]
32
+ emerge_sync(deployment[:portage][:sync], options)
33
33
  end
34
34
 
35
35
  [installer, updater, cleaner]
36
36
  end
37
37
 
38
38
  private
39
+ def self.emerge_sync_in_progress
40
+ repo_path = `emerge --info | grep location`.chomp.split(': ').last
41
+ Dir.exist?(repo_path + '/.tmp-unverified-download-quarantine')
42
+ end
39
43
 
40
- def self.emerge_sync(options)
41
- File.open('/tmp/datetime', 'a+') do |f|
42
- last_sync = f.getbyte ? DateTime.parse(f.read) : (DateTime.now - 2)
43
-
44
- if (DateTime.now - last_sync).to_i != 0
45
- puts "\nUpdating Portage repo..."
46
- DanarchyDeploy::Helpers.run_command('emerge --sync --quiet 2>/dev/null', options)
47
- f.truncate(0)
48
- f.write DateTime.now
49
- end
44
+ def self.emerge_sync_wait
45
+ while emerge_sync_in_progress
46
+ sleep 3
47
+ end
48
+ puts " |> Continuing with emerge!"
49
+ end
50
50
 
51
- f.close
51
+ def self.emerge_sync(sync, options)
52
+ puts "\n > Gentoo Emerge Sync"
53
+ if sync.nil?
54
+ install_sync_cron(sync, options)
55
+ elsif sync == false
56
+ puts "\n - Not running emerge sync; set to: #{sync}"
57
+ install_sync_cron(sync, options)
58
+ elsif sync == true
59
+ File.delete('/var/spool/cron/crontabs/portage') if File.exist?('/var/spool/cron/crontabs/portage')
60
+ DanarchyDeploy::Helpers.run_command('emerge --sync &>/var/log/emerge-sync.log', options)
61
+ elsif sync =~ /([0-9]{1,2}|\*|\@[a-z]{4,7})/i
62
+ install_sync_cron(sync, options)
63
+ else
64
+ puts "\n ! Unknown sync cron time: #{sync}. Not running emerge sync!"
52
65
  end
53
66
  end
54
67
 
55
68
  def self.set_hostname(hostname)
56
- confd_hostname = "hostname=\"#{hostname}\""
57
- File.write('/etc/conf.d/hostname', confd_hostname)
58
- `hostname #{hostname}`
69
+ if `hostname`.chomp != hostname
70
+ puts "Setting hostname to: #{hostname}"
71
+ confd_hostname = "hostname=\"#{hostname}\""
72
+ File.write('/etc/conf.d/hostname', confd_hostname)
73
+ `hostname #{hostname}`
74
+ end
59
75
  end
60
76
 
61
- def self.check_hostname(hostname)
62
- `hostname`.chomp == hostname
77
+ def self.install_sync_cron(sync, options)
78
+ templates = if sync.nil? || sync == false
79
+ [
80
+ {
81
+ target: '/var/spool/cron/crontabs/portage',
82
+ remove: true
83
+ }
84
+ ]
85
+ else
86
+ [
87
+ {
88
+ source: 'builtin::system/crontab.erb',
89
+ target: '/var/spool/cron/crontabs/portage',
90
+ dir_perms: {
91
+ owner: 'root',
92
+ group: 'crontab',
93
+ mode: '1730'
94
+ },
95
+ file_perms: {
96
+ owner: 'portage',
97
+ group: 'crontab',
98
+ mode: '0600'
99
+ },
100
+ variables: {
101
+ shell: '/bin/bash',
102
+ path: '/usr/local/sbin:/usr/local/bin:/usr/bin',
103
+ env: '',
104
+ jobs: [
105
+ {
106
+ schedule: sync,
107
+ command: 'emerge --sync &>/var/log/emerge-sync.log'
108
+ },
109
+ {
110
+ schedule: '@daily',
111
+ command: 'eclean-dist &>/dev/null'
112
+ },
113
+ {
114
+ schedule: '@daily',
115
+ command: 'eclean-pkg &>/dev/null'
116
+ }
117
+ ]
118
+ }
119
+ }
120
+ ]
121
+ end
122
+
123
+ DanarchyDeploy::Templater.new(templates, options)
63
124
  end
64
125
  end
65
126
  end
@@ -6,6 +6,7 @@ module DanarchyDeploy
6
6
  puts "\n" + self.name
7
7
  puts "#{deployment[:os].capitalize} detected! Using zypper."
8
8
 
9
+ set_hostname(deployment[:hostname]) if !options[:pretend]
9
10
  puts "Updating zypper repositories..."
10
11
  DanarchyDeploy::Helpers.run_command('sudo zypper refresh', options)
11
12
 
@@ -17,6 +18,11 @@ module DanarchyDeploy
17
18
 
18
19
  [installer, updater, cleaner]
19
20
  end
21
+
22
+ private
23
+ def set_hostname(hostname)
24
+ `hostnamectl set-hostname #{hostname}`
25
+ end
20
26
  end
21
27
  end
22
28
  end
@@ -3,7 +3,7 @@ require_relative 'system/debian'
3
3
  require_relative 'system/gentoo'
4
4
  require_relative 'system/opensuse'
5
5
 
6
- require_relative 'system/cryptsetup'
6
+ # require_relative 'system/cryptsetup'
7
7
  require_relative 'system/fstab'
8
8
 
9
9
  module DanarchyDeploy
@@ -13,10 +13,11 @@ module DanarchyDeploy
13
13
  puts "\n" + self.name
14
14
 
15
15
  installer, updater, cleaner = prep_operating_system(deployment, options)
16
- install_result = nil
16
+ install_result, updater_result = nil, nil
17
17
 
18
18
  puts "\n > Package Installation"
19
- if deployment[:packages].any? && ['all', 'packages', nil].include?(deployment[:system][:update])
19
+ if [true, 'all', 'selected', nil].include?(deployment[:system][:update]) &&
20
+ deployment[:packages].any?
20
21
  packages = deployment[:packages].join(' ')
21
22
  puts "\n - Installing packages..."
22
23
  install_result = DanarchyDeploy::Helpers.run_command("#{installer} #{packages}", options)
@@ -24,20 +25,23 @@ module DanarchyDeploy
24
25
  else
25
26
  puts "\n - Not installing packages."
26
27
  puts " |_ Packages selected: #{deployment[:packages].count}"
27
- puts " |_ Updates selected: #{deployment[:system][:update]}"
28
+ puts " |_ Install/Update: #{deployment[:system][:update]}"
28
29
  end
29
30
 
30
31
  puts "\n > #{deployment[:os].capitalize} System Updates"
31
- if ['all', 'system', nil].include?(deployment[:system][:update])
32
+ if [true, 'all', 'system', nil].include?(deployment[:system][:update])
32
33
  puts "\n - Running system updates..."
33
34
  updater_result = DanarchyDeploy::Helpers.run_command(updater, options)
34
35
  puts updater_result[:stdout] if updater_result[:stdout]
36
+ else
37
+ puts "\n - Not running #{deployment[:os].capitalize} system updates."
38
+ puts " |_ Install/Update: #{deployment[:system][:update]}"
39
+ end
40
+
41
+ if install_result || updater_result
35
42
  puts "\n - Cleaning up unused packages..."
36
43
  cleanup_result = DanarchyDeploy::Helpers.run_command(cleaner, options)
37
44
  puts cleanup_result[:stdout] if cleanup_result[:stdout]
38
- else
39
- puts "\n - Not running #{deployment[:os].capitalize} system updates."
40
- puts " |_ Updates selected: #{deployment[:system][:update]}"
41
45
  end
42
46
 
43
47
  deployment
@@ -59,7 +63,8 @@ module DanarchyDeploy
59
63
  DanarchyDeploy::Templater.new(deployment[:system][:templates], options)
60
64
  end
61
65
 
62
- DanarchyDeploy::System::Cryptsetup.new(deployment[:os], deployment[:system][:cryptsetup], options)
66
+ # Disabled due to Init changes; re-writing and splitting LVM/CryptSetup
67
+ # DanarchyDeploy::System::Cryptsetup.new(deployment[:os], deployment[:system][:cryptsetup], options)
63
68
 
64
69
  if deployment[:system][:fstab]
65
70
  DanarchyDeploy::System::Fstab.new(deployment[:os], deployment[:system][:fstab], options)
@@ -95,13 +95,12 @@ module DanarchyDeploy
95
95
  chmod = nil
96
96
  puts "\n > Verifying ownership and permissions for '#{target}'"
97
97
  if perms
98
- puts " |+ Setting file mode to: #{perms[:mode]}"
99
98
  (owner, group, mode) = perms[:owner], perms[:group], perms[:mode]
100
99
  else
101
100
  if File.stat(target).mode & 07777 == '0777'.to_i(8)
102
101
  puts " ! '#{target}' has 0777 permissions! Setting those to something more sane."
103
102
  if File.ftype(target) == 'directory'
104
- puts " |+ Setting file mode to: 0775"
103
+ puts " |+ Setting directory mode to: 0775"
105
104
  chmod = File.chmod(0775, target) ? true : false if !options[:pretend]
106
105
  elsif File.ftype(target) == 'file'
107
106
  puts " |+ Setting file mode to: 0644"