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.
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"