danarchy_deploy 0.2.5 → 0.2.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f00a848b7b3326a27f07e661d2a0f79593cd8bb4140664e7fd86de1429a428a5
4
- data.tar.gz: 91d62fdeff9560e8178bfe00b214c15740d53f785003f33a38d10c22878e5be5
3
+ metadata.gz: 7e103704d84bcb50319a7f6dae091e4655159c1ee83e0b28ae599280ab1c325d
4
+ data.tar.gz: '084b77c73e50c58af4f38d8cd81be5cdbbcd6923a046b944f3b1c3eafaacb248'
5
5
  SHA512:
6
- metadata.gz: afb687e9d4df549f12bb3d14d6acf235020d288617ceba418eee50d7806da84d002491b1beb62056484a71e047aa91cac02b40d60afe7b8a073980550dc52af9
7
- data.tar.gz: 8db9fa38eaedc05cc48074a690176764be983cdf9b18538773ee63d55de1c039a835f3c962df23d6970b725a0299cee9ea81f3aaee0e02c3244451caf46d6552
6
+ metadata.gz: b24d195152bfd8ce9e63e946d393f6699c56914e6880b431e5ab93b4c557a292b73f3c6a5c6d21fa35fd3cf70f531daced888e1192bea86f0bcef6947e571b9e
7
+ data.tar.gz: bcf97212adde19fbb712efb9b9864e1f8f26e22370ed5fd0ff435ea1a04cd065d78b9530ee1b2989afd2aadc4c72eeecbdfc67f52b698dd08af0d7ee5d1be930
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ danarchy_deploy
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ ruby-2.7.2
data/CHANGELOG.md ADDED
@@ -0,0 +1,54 @@
1
+ patch_0.2.7
2
+ - Patch Templater ERB.new for Ruby versions higher than 2.6
3
+ - Allow builtin:: templates in Templater
4
+ - System: allow :system:updates in template to control what to install/update
5
+ - System: do not return if :system is not defined in template
6
+
7
+ patch_0.2.6
8
+ - DanarchyDeploy: gem install --bindir
9
+ - DanarchyDeploy: return from each class if not defined in a deployment
10
+ - Services::MySQL: Check for defaults_file instead of /etc/my.cnf, SecureRandom.hex for passwords
11
+ - Services::Init: clean up output and if statement
12
+ - Add RVM .ruby-version .ruby-gemset
13
+ - Rename danarchy_deploy-console to console-dd
14
+ - Add CHANGELOG.md
15
+
16
+ patch_0.2.5
17
+ - Adds Fstab system service
18
+ - Adds Dmcrypt/LVM system service
19
+ - Enforce MongoDB security/limits.d/mongodb.conf if it doesn't exist
20
+ - Clarify some CLI output
21
+ - Ignore first SSH known_hosts error in RemoteDeploy.remote_mkdir
22
+
23
+ patch_0.2.4
24
+ - mongodb limits newlines
25
+
26
+ patch_0.2.2
27
+ - Fix MongoDB so it correctly applies security limits file count
28
+
29
+ release_0.2.0
30
+ - Adds Applicator #wordpress #nginx #phpfpm #ssl
31
+ - Adds Services #init #mongodb #mysql
32
+ - Adds System #centos #debian #gentoo #openssue
33
+
34
+ patch_0.1.6
35
+ - User/Groups commands should use sudo
36
+
37
+ patch_0.1.5
38
+ - Don't upload to couchdb if using a .json/.yaml template
39
+
40
+ patch_0.1.4
41
+ - sudoers.d/ file root owned
42
+
43
+ patch_0.1.3
44
+ - prevents packages from being an empty array
45
+
46
+ patch_0.1.2
47
+ - chown/chmod on ~/.ssh contents
48
+ - fix JSON parse error
49
+
50
+ release_0.1.1
51
+ - Re-order archive extraction and template creation so that written templates aren't overwritten by archive data.
52
+ - Fixes user sudoers.d file creation; a+ append instead of r+ read-write (expects file to exist already).
53
+ - Cleans up package handling for Gentoo and also changes --usepkg to --buildpkg if hostname begins with 'image' or 'template' for binary creation during image builds.
54
+
data/Gemfile.lock CHANGED
@@ -1,14 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- danarchy_deploy (0.2.5)
4
+ danarchy_deploy (0.2.6)
5
5
  danarchy_couchdb (~> 0.1)
6
6
  mongo (~> 2.17)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- bson (4.14.0)
11
+ bson (4.14.1)
12
12
  danarchy_couchdb (0.1.3)
13
13
  mongo (2.17.0)
14
14
  bson (>= 4.8.2, < 5.0.0)
@@ -23,4 +23,4 @@ DEPENDENCIES
23
23
  rake (~> 13.0)
24
24
 
25
25
  BUNDLED WITH
26
- 2.3.3
26
+ 2.3.9
data/bin/danarchy_deploy CHANGED
@@ -95,7 +95,7 @@ end
95
95
  if location == 'remote'
96
96
  deployment = DanarchyDeploy::RemoteDeploy.new(deployment, options)
97
97
  elsif location == 'local'
98
- abort('Exiting! Local deployment be run with sudo!') if Process.uid != 0
98
+ abort('Exiting! Local deployment must be run with sudo!') if Process.uid != 0
99
99
  puts "Deploying #{deployment[:hostname]} locally to #{`hostname`.chomp}."
100
100
 
101
101
  if !options[:pretend]
@@ -2,6 +2,7 @@
2
2
  module DanarchyDeploy
3
3
  class Groups
4
4
  def self.new(deployment, options)
5
+ return deployment if ! deployment[:groups]
5
6
  puts "\n" + self.name
6
7
  (groupadd_result, groupdel_result) = nil
7
8
 
@@ -5,6 +5,7 @@ module DanarchyDeploy
5
5
  module Services
6
6
  class Init
7
7
  def self.new(deployment, options)
8
+ return deployment if ! deployment[:services]
8
9
  puts "\n" + self.name
9
10
 
10
11
  deployment[:services].each do |service, params|
@@ -35,16 +36,16 @@ module DanarchyDeploy
35
36
 
36
37
  init_result = init.send(action)
37
38
 
38
- if init_result[:stderr]
39
- if init_result[:stderr].include?('unknown function')
39
+ if stderr = init_result[:stderr]
40
+ if stderr.include?('unknown function')
40
41
  puts " ! Action: #{action} not available for service: #{service}.\n" +
41
42
  " ! A restart may be needed! Otherwise, remove this action from the deployment.\n" +
42
43
  " ! Not taking any action here.\n"
43
44
  else
44
- abort(" ! Action: #{service} #{action} failed!")
45
+ abort(" ! Action: #{action} #{service} failed!")
45
46
  end
46
47
  else
47
- puts " |+ Action: #{service} #{action} succeeded."
48
+ puts " |+ Action: #{action} #{service} succeeded."
48
49
  end
49
50
  end
50
51
  end
@@ -13,7 +13,7 @@ module DanarchyDeploy
13
13
  Mongo::Logger.logger.level = Logger::FATAL
14
14
  mongodb_conf, updated_conf = self.load_mongodb_conf
15
15
  host_port = mongodb_conf['net']['bindIp'].split(',').first + ':' + mongodb_conf['net']['port'].to_s
16
- admin_user, new_admin = self.load_admin_user
16
+ admin_user, new_admin = self.load_admin_user
17
17
 
18
18
  if new_admin == true
19
19
  client = Mongo::Client.new(['127.0.0.1'], database: 'admin')
@@ -49,13 +49,13 @@ module DanarchyDeploy
49
49
  end
50
50
 
51
51
  def self.generate_root_mycnf(mysql, options)
52
- return if File.exist?(mysql[:default_file])
53
- puts " |+ Generating #{mysql[:default_file]} file."
54
- password = SecureRandom.base64(14)
52
+ return if File.exist?(mysql[:defaults_file])
53
+ puts " |+ Generating #{mysql[:defaults_file]} file."
54
+ password = SecureRandom.hex(24)
55
55
  source = options[:deploy_dir] +
56
56
  '/templates/services/mysql/root_my.cnf.erb'
57
57
 
58
- templates = [{ target: mysql[:default_file],
58
+ templates = [{ target: mysql[:defaults_file],
59
59
  source: source,
60
60
  variables: {
61
61
  host: 'localhost',
@@ -11,7 +11,7 @@ module DanarchyDeploy
11
11
  mysql = self.set_parameters(mysql)
12
12
  self.generate_my_cnf(mysql, options)
13
13
 
14
- if File.exist?(mysql[:my_cnf]) && Dir.exist?(mysql[:datadir] + '/mysql')
14
+ if File.exist?(mysql[:defaults_file]) && Dir.exist?(mysql[:datadir])
15
15
  puts " |+ Using existing MySQL service."
16
16
  else
17
17
  MySQL::NewServer.new(os, mysql, options)
@@ -24,8 +24,8 @@ module DanarchyDeploy
24
24
  end
25
25
 
26
26
  def self.set_parameters(mysql)
27
- mysql[:default_file] = mysql[:default_file] ?
28
- mysql[:default_file] :
27
+ mysql[:defaults_file] = mysql[:defaults_file] ?
28
+ mysql[:defaults_file] :
29
29
  '/root/.my.cnf'
30
30
  mysql[:my_cnf] = mysql[:my_cnf] ?
31
31
  mysql[:my_cnf] :
@@ -6,6 +6,7 @@ require_relative 'services/mysql'
6
6
  module DanarchyDeploy
7
7
  module Services
8
8
  def self.new(deployment, options)
9
+ return deployment if ! deployment[:services]
9
10
  puts "\n" + self.name
10
11
 
11
12
  deployment[:services].each do |service, params|
@@ -6,10 +6,14 @@ module DanarchyDeploy
6
6
  return false if cryptsetup.nil?
7
7
  puts "\n" + self.name
8
8
 
9
- # expects object: { "cryptsetup": { "source": "/danarchy/deploy/templates/system/cryptsetup.erb", (optional)
10
- # "volumes": { "vg_name:vg0:/dev/vdb": { "target": "dm-vg0-mongodb",
11
- # "source": "/dev/mapper/vg0-mongodb",
12
- # "key": "/root/vdb_mongodb.key" } } } }
9
+ # expects object: {
10
+ # "cryptsetup": {
11
+ # "source": "/danarchy/deploy/templates/system/cryptsetup.erb", (optional)
12
+ # "volumes": {
13
+ # "vg_name:vg0:/dev/vdb": {
14
+ # "target": "dm-vg0-mongodb",
15
+ # "source": "/dev/mapper/vg0-mongodb",
16
+ # "key": "/root/vdb_mongodb.key" } } } }
13
17
 
14
18
  if os == 'gentoo'
15
19
  DanarchyDeploy::Services::Init.init_manager(os, 'lvmetad', 'enable', options)
@@ -10,6 +10,12 @@ module DanarchyDeploy
10
10
  mount_all(options)
11
11
  end
12
12
 
13
+ def self.mount_all(options)
14
+ puts "\n > Mounting Filesystems"
15
+ mount_result = DanarchyDeploy::Helpers.run_command('mount -a', options)
16
+ abort(' ! Failed to mount filesystems!') if mount_result[:stderr]
17
+ end
18
+
13
19
  private
14
20
  def self.set_config(fstab, options)
15
21
  target = '/etc/fstab'
@@ -49,12 +55,6 @@ module DanarchyDeploy
49
55
  !Dir.exist?(mount[:mountpoint])
50
56
  end
51
57
  end
52
-
53
- def self.mount_all(options)
54
- puts "\n > Mounting Filesystems"
55
- mount_result = DanarchyDeploy::Helpers.run_command('mount -a', options)
56
- abort(' ! Failed to mount filesystems!') if mount_result[:stderr]
57
- end
58
58
  end
59
59
  end
60
60
  end
@@ -14,26 +14,32 @@ module DanarchyDeploy
14
14
 
15
15
  installer, updater, cleaner = prep_operating_system(deployment, options)
16
16
  install_result = nil
17
- if deployment[:packages] && !deployment[:packages].empty?
17
+
18
+ puts "\n > Package Installation"
19
+ if deployment[:packages].any? && ['all', 'packages', nil].include?(deployment[:system][:update])
18
20
  packages = deployment[:packages].join(' ')
19
- puts "\nInstalling packages..."
21
+ puts "\n - Installing packages..."
20
22
  install_result = DanarchyDeploy::Helpers.run_command("#{installer} #{packages}", options)
21
23
  puts install_result[:stdout] if install_result[:stdout]
22
24
  else
23
- puts "\nNo packages to install."
25
+ puts "\n - Not installing packages."
26
+ puts " |_ Packages selected: #{deployment[:packages].count}"
27
+ puts " |_ Updates selected: #{deployment[:system][:update]}"
24
28
  end
25
29
 
26
- if !options[:pretend]
27
- puts "\nRunning system updates..."
30
+ puts "\n > #{deployment[:os].capitalize} System Updates"
31
+ if ['all', 'system', nil].include?(deployment[:system][:update])
32
+ puts "\n - Running system updates..."
28
33
  updater_result = DanarchyDeploy::Helpers.run_command(updater, options)
29
34
  puts updater_result[:stdout] if updater_result[:stdout]
30
- puts "\nCleaning up unused packages..."
35
+ puts "\n - Cleaning up unused packages..."
31
36
  cleanup_result = DanarchyDeploy::Helpers.run_command(cleaner, options)
32
37
  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]}"
33
41
  end
34
42
 
35
- DanarchyDeploy::System::Cryptsetup.new(deployment[:os], deployment[:system][:cryptsetup], options)
36
- DanarchyDeploy::System::Fstab.new(deployment[:os], deployment[:system][:fstab], options)
37
43
  deployment
38
44
  end
39
45
 
@@ -52,6 +58,14 @@ module DanarchyDeploy
52
58
  puts "\n > Configuring system templates for #{deployment[:os]}"
53
59
  DanarchyDeploy::Templater.new(deployment[:system][:templates], options)
54
60
  end
61
+
62
+ DanarchyDeploy::System::Cryptsetup.new(deployment[:os], deployment[:system][:cryptsetup], options)
63
+
64
+ if deployment[:system][:fstab]
65
+ DanarchyDeploy::System::Fstab.new(deployment[:os], deployment[:system][:fstab], options)
66
+ else
67
+ DanarchyDeploy::System::Fstab.mount_all(options)
68
+ end
55
69
  end
56
70
 
57
71
  if os.downcase == 'gentoo'
@@ -61,8 +75,8 @@ module DanarchyDeploy
61
75
  elsif os.downcase == 'opensuse'
62
76
  puts 'OpenSUSE is not fully supported yet!'
63
77
  (installer, updater, cleaner) = DanarchyDeploy::System::OpenSUSE.new(deployment, options)
64
- elsif %w[centos redhat].include?(os.downcase)
65
- puts 'CentOS/RedHat is not fully supported yet!'
78
+ elsif %w[fedora centos redhat].include?(os.downcase)
79
+ puts 'Fedora/CentOS/RedHat is not fully supported yet!'
66
80
  (installer, updater, cleaner) = DanarchyDeploy::System::CentOS.new(deployment, options)
67
81
  end
68
82
 
@@ -3,6 +3,15 @@ require 'fileutils'
3
3
 
4
4
  module DanarchyDeploy
5
5
  class Templater
6
+ def self.load_source(source)
7
+ if source =~ /^builtin::/
8
+ source = File.expand_path('../../', __dir__) + '/templates/' + source.split('::').last
9
+ end
10
+
11
+ abort("Source file does not exist at: #{source}") if ! File.exist?(source)
12
+ source
13
+ end
14
+
6
15
  def self.new(templates, options)
7
16
  puts "\n" + self.name
8
17
 
@@ -13,12 +22,17 @@ module DanarchyDeploy
13
22
 
14
23
  templates.each do |template|
15
24
  next if template[:remove]
16
- abort("No target destination set for template: #{template[:source]}!") if !template[:target]
17
- abort("No source or data for template: #{template[:target]}") if !template[:source] && !template[:data]
18
- abort("Source file does not exist at: #{template[:source]}") if ! File.exist?(template[:source])
25
+ source = if !template[:target]
26
+ abort("No target destination set for template: #{template[:source]}!")
27
+ elsif template[:source].nil? && template[:data].nil?
28
+ abort("No source or data for template: #{template[:target]}")
29
+ elsif template[:data]
30
+ '-- encoded data --'
31
+ else
32
+ load_source(template[:source])
33
+ end
19
34
 
20
35
  target = template[:target]
21
- source = template[:source] || '-- encoded data --'
22
36
  dir_perms = template[:dir_perms]
23
37
  file_perms = template[:file_perms]
24
38
  @variables = template[:variables] || nil
@@ -43,7 +57,11 @@ module DanarchyDeploy
43
57
  end
44
58
 
45
59
  File.open(tmpfile, 'w') do |f|
46
- result = ERB.new(File.read(source), nil, '-').result(binding)
60
+ result = if RUBY_VERSION >= '2.6'
61
+ ERB.new(File.read(source), trim_mode: '-').result(binding)
62
+ else
63
+ ERB.new(File.read(source), nil, '-').result(binding)
64
+ end
47
65
  f.write(result)
48
66
  f.close
49
67
  end
@@ -54,7 +72,7 @@ module DanarchyDeploy
54
72
  puts "\n - Fake Run: Not changing '#{target}'."
55
73
  result[:verify_permissions][File.dirname(tmpfile)] = verify_permissions(File.dirname(tmpfile), dir_perms, options)
56
74
  result[:verify_permissions][tmpfile] = verify_permissions(tmpfile, file_perms, options)
57
- elsif md5sum(target,tmpfile) == true
75
+ elsif files_identical?(target,tmpfile)
58
76
  puts "\n - No change in '#{target}': Nothing to update here."
59
77
  result[:verify_permissions][File.dirname(target)] = verify_permissions(File.dirname(target), dir_perms, options)
60
78
  result[:verify_permissions][target] = verify_permissions(target, file_perms, options)
@@ -141,7 +159,7 @@ module DanarchyDeploy
141
159
  [owner, uid, group, gid]
142
160
  end
143
161
 
144
- def self.md5sum(target, tmpfile)
162
+ def self.files_identical?(target, tmpfile)
145
163
  if File.exist?(target) && File.exist?(tmpfile)
146
164
  FileUtils.identical?(target, tmpfile)
147
165
  elsif File.exist?(target) && !File.exist?(tmpfile)
@@ -2,6 +2,7 @@
2
2
  module DanarchyDeploy
3
3
  class Users
4
4
  def self.new(deployment, options)
5
+ return deployment if ! deployment[:users]
5
6
  puts "\n" + self.name
6
7
  (useradd_result, userdel_result, archives_result) = nil
7
8
 
@@ -56,7 +57,6 @@ module DanarchyDeploy
56
57
  user.delete(:username)
57
58
  end
58
59
 
59
- # [useradd_result, userdel_result]
60
60
  deployment
61
61
  end
62
62
 
@@ -1,3 +1,3 @@
1
1
  module DanarchyDeploy
2
- VERSION = "0.2.5"
2
+ VERSION = "0.2.7"
3
3
  end
@@ -21,10 +21,10 @@ module DanarchyDeploy
21
21
  printf("%12s %0s\n", 'Packages:', deployment[:packages].join(', ')) if deployment[:packages]
22
22
 
23
23
  deployment = DanarchyDeploy::System.new(deployment, options)
24
- deployment = DanarchyDeploy::Services.new(deployment, options) if deployment[:services]
25
- deployment = DanarchyDeploy::Groups.new(deployment, options) if deployment[:groups]
26
- deployment = DanarchyDeploy::Users.new(deployment, options) if deployment[:users]
27
- deployment = DanarchyDeploy::Services::Init.new(deployment, options) if deployment[:services]
24
+ deployment = DanarchyDeploy::Services.new(deployment, options)
25
+ deployment = DanarchyDeploy::Groups.new(deployment, options)
26
+ deployment = DanarchyDeploy::Users.new(deployment, options)
27
+ deployment = DanarchyDeploy::Services::Init.new(deployment, options)
28
28
 
29
29
  deployment[:last_deploy] = DateTime.now.strftime("%Y/%m/%d %H:%M:%S")
30
30
  puts "\nFinished Local Deployment at #{deployment[:last_deploy]}!"
@@ -61,7 +61,7 @@ module DanarchyDeploy
61
61
 
62
62
  gem_clean(connector, options)
63
63
  gem_binary = _locate_gem_binary(connector, options) # this should run before any install; check version too
64
- push_temmplates(connector, options)
64
+ push_templates(connector, options)
65
65
  push_deployment(connector, options)
66
66
  deploy_result = remote_LocalDeploy(connector, gem_binary, options)
67
67
 
@@ -144,7 +144,7 @@ module DanarchyDeploy
144
144
  end
145
145
 
146
146
  puts "\n > Installing gem: #{gem} on #{connector[:hostname]}"
147
- install_cmd = _ssh_command(connector, "sudo gem install -f #{options[:deploy_dir]}/#{File.basename(gem)}")
147
+ install_cmd = _ssh_command(connector, "sudo gem install --bindir /usr/local/bin -f #{options[:deploy_dir]}/#{File.basename(gem)}")
148
148
  install_result = DanarchyDeploy::Helpers.run_command(install_cmd, options)
149
149
 
150
150
  if install_result[:stderr]
@@ -159,7 +159,7 @@ module DanarchyDeploy
159
159
  system(clean_cmd)
160
160
  end
161
161
 
162
- def self.push_temmplates(connector, options)
162
+ def self.push_templates(connector, options)
163
163
  template_dir = options[:deploy_dir] + '/templates'
164
164
  puts "\n > Pushing templates: #{template_dir}"
165
165
  push_cmd = _rsync_push(connector, template_dir, template_dir)
@@ -1,13 +1,41 @@
1
1
  {
2
2
  "hostname": "hostname",
3
- "os": "gentoo|debian|ubuntu",
4
- "ipv4": "IPv4 to use for deployment",
5
- "ssh_user": "deploy-user",
6
- "ssh_key": "/home/path/to/deploy-user/ssh_key.",
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
+ "system": {
12
+ "update": "all || system || packages || none",
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
+ },
11
39
  "users": [
12
40
  {
13
41
  "username": "username",
@@ -16,22 +44,21 @@
16
44
  "gid": int,
17
45
  "sudoer": "username ALL = NOPASSWD: ALL",
18
46
  "ssh-authorized_keys": [
19
- "ssh-ed25519 it0C5o6GHC8lxqctpexakfdA5o7LeSe+QbMhIl+GYtZ2OCMFliLsODDrrazR+u2y user@hostname",
20
- "ssh-rsa K0APeEvotGunpBrl/LvSAG/gLUldCnOrL60v47QYjuqoGJmM3Fk8V29+8jZPp9Dl user@hostname"
47
+ "ssh-ed25519 it0C5o6GHC8lxqctpexakfdA5o7LeSe+QbMhIl+GYtZ2OCMFliLsODDrrazR+u2y user@hostname",
48
+ "ssh-rsa K0APeEvotGunpBrl/LvSAG/gLUldCnOrL60v47QYjuqoGJmM3Fk8V29+8jZPp9Dl user@hostname"
21
49
  ],
22
50
  "groups": [
23
- int,
24
- int
51
+ int
25
52
  ],
26
53
  "archives": [
27
- {
28
- "target": "/path/to/extract/to/",
29
- "source": "/path/to/tarball.(tar.{gz,bz2}|zip)"
30
- },
31
- {
32
- "target": "/path/to/extract/to/",
33
- "data": "couchdb:base64_encoded_data"
34
- }
54
+ {
55
+ "target": "/path/to/extract/to/",
56
+ "source": "/path/to/tarball.(tar.{gz,bz2}|zip)"
57
+ },
58
+ {
59
+ "target": "/path/to/extract/to/",
60
+ "data": "couchdb::base64_encoded_data"
61
+ }
35
62
  ]
36
63
  }
37
64
  ],
@@ -50,48 +77,48 @@
50
77
  ]
51
78
  },
52
79
  "archives": [
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
- }
80
+ {
81
+ "target": "/path/to/extract/to/",
82
+ "source": "/path/to/tarball.(tar.{gz,bz2}|zip)"
83
+ },
84
+ {
85
+ "target": "/path/to/extract/to/",
86
+ "data": "couchdb::base64_encoded_data"
87
+ }
61
88
  ],
62
89
  "templates": [
63
- {
64
- "target": "/path/to/target/file",
65
- "source": "/path/to/source/erb",
66
- "dir_perms": {
90
+ {
91
+ "target": "/path/to/target/file",
92
+ "source": "/path/to/source/erb",
93
+ "dir_perms": {
67
94
  "owner": "username",
68
95
  "group": "groupname",
69
96
  "mode": "0755"
70
- },
71
- "file_perms": {
97
+ },
98
+ "file_perms": {
72
99
  "owner": "username",
73
100
  "group": "groupname",
74
101
  "mode": "0644"
75
- },
76
- "variables": {
77
- "var1": "value",
78
- "var2": "value"
79
- }
80
- },
81
- {
82
- "target": "/path/to/target/file",
83
- "data": "couchdb:base64_encoded_erb",
84
- "dir_perms": {
102
+ },
103
+ "variables": {
104
+ "var1": "value",
105
+ "var2": "value"
106
+ }
107
+ },
108
+ {
109
+ "target": "/path/to/target/file",
110
+ "data": "couchdb::base64_encoded_erb",
111
+ "dir_perms": {
85
112
  "owner": "username",
86
113
  "group": "groupname",
87
114
  "mode": "0755"
88
- },
89
- "file_perms": {
115
+ },
116
+ "file_perms": {
90
117
  "owner": "username",
91
118
  "group": "groupname",
92
119
  "mode": "0644"
93
- }
94
- }
120
+ }
121
+ }
95
122
  ]
96
123
  }
97
124
  }
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.5
4
+ version: 0.2.7
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-01-20 00:00:00.000000000 Z
11
+ date: 2023-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: danarchy_couchdb
@@ -71,22 +71,25 @@ description: DanarchyDeploy intends to simplify Gentoo Linux (and other distro)
71
71
  email:
72
72
  - dan@danarchy.me
73
73
  executables:
74
+ - console-dd
74
75
  - danarchy_deploy
75
- - danarchy_deploy-console
76
76
  - setup
77
77
  extensions: []
78
78
  extra_rdoc_files: []
79
79
  files:
80
80
  - ".gitignore"
81
81
  - ".rspec"
82
+ - ".ruby-gemset"
83
+ - ".ruby-version"
82
84
  - ".travis.yml"
85
+ - CHANGELOG.md
83
86
  - Gemfile
84
87
  - Gemfile.lock
85
88
  - LICENSE.txt
86
89
  - README.md
87
90
  - Rakefile
91
+ - bin/console-dd
88
92
  - bin/danarchy_deploy
89
- - bin/danarchy_deploy-console
90
93
  - bin/setup
91
94
  - danarchy_deploy.gemspec
92
95
  - lib/danarchy_deploy.rb
@@ -144,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
147
  - !ruby/object:Gem::Version
145
148
  version: '0'
146
149
  requirements: []
147
- rubygems_version: 3.2.33
150
+ rubygems_version: 3.3.26
148
151
  signing_key:
149
152
  specification_version: 4
150
153
  summary: Pushes deployments locally or remotely based on a JSON/YAML/CouchDB template.
File without changes