danarchy_deploy 0.2.5 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
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