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 +4 -4
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +54 -0
- data/Gemfile.lock +3 -3
- data/bin/danarchy_deploy +1 -1
- data/lib/danarchy_deploy/groups.rb +1 -0
- data/lib/danarchy_deploy/services/init.rb +5 -4
- data/lib/danarchy_deploy/services/mongodb.rb +1 -1
- data/lib/danarchy_deploy/services/mysql/new_server.rb +4 -4
- data/lib/danarchy_deploy/services/mysql.rb +3 -3
- data/lib/danarchy_deploy/services.rb +1 -0
- data/lib/danarchy_deploy/system/cryptsetup.rb +8 -4
- data/lib/danarchy_deploy/system/fstab.rb +6 -6
- data/lib/danarchy_deploy/system.rb +24 -10
- data/lib/danarchy_deploy/templater.rb +25 -7
- data/lib/danarchy_deploy/users.rb +1 -1
- data/lib/danarchy_deploy/version.rb +1 -1
- data/lib/danarchy_deploy.rb +7 -7
- data/templates/deploy_template.json +71 -44
- metadata +8 -5
- /data/bin/{danarchy_deploy-console → console-dd} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7e103704d84bcb50319a7f6dae091e4655159c1ee83e0b28ae599280ab1c325d
|
4
|
+
data.tar.gz: '084b77c73e50c58af4f38d8cd81be5cdbbcd6923a046b944f3b1c3eafaacb248'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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.
|
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.
|
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]
|
@@ -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
|
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: #{
|
45
|
+
abort(" ! Action: #{action} #{service} failed!")
|
45
46
|
end
|
46
47
|
else
|
47
|
-
puts " |+ Action: #{
|
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
|
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[:
|
53
|
-
puts " |+ Generating #{mysql[:
|
54
|
-
password = SecureRandom.
|
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[:
|
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[:
|
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[:
|
28
|
-
mysql[:
|
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,10 +6,14 @@ module DanarchyDeploy
|
|
6
6
|
return false if cryptsetup.nil?
|
7
7
|
puts "\n" + self.name
|
8
8
|
|
9
|
-
# expects object: {
|
10
|
-
#
|
11
|
-
#
|
12
|
-
#
|
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
|
-
|
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 "\
|
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 "\
|
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
|
-
|
27
|
-
|
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 "\
|
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
|
-
|
17
|
-
|
18
|
-
|
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 =
|
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
|
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.
|
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
|
|
data/lib/danarchy_deploy.rb
CHANGED
@@ -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)
|
25
|
-
deployment = DanarchyDeploy::Groups.new(deployment, options)
|
26
|
-
deployment = DanarchyDeploy::Users.new(deployment, options)
|
27
|
-
deployment = DanarchyDeploy::Services::Init.new(deployment, options)
|
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
|
-
|
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.
|
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
|
4
|
-
"ipv4": "IPv4 to use for deployment",
|
5
|
-
"ssh_user": "
|
6
|
-
"ssh_key": "/home/path/to/
|
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
|
-
|
20
|
-
|
47
|
+
"ssh-ed25519 it0C5o6GHC8lxqctpexakfdA5o7LeSe+QbMhIl+GYtZ2OCMFliLsODDrrazR+u2y user@hostname",
|
48
|
+
"ssh-rsa K0APeEvotGunpBrl/LvSAG/gLUldCnOrL60v47QYjuqoGJmM3Fk8V29+8jZPp9Dl user@hostname"
|
21
49
|
],
|
22
50
|
"groups": [
|
23
|
-
|
24
|
-
int
|
51
|
+
int
|
25
52
|
],
|
26
53
|
"archives": [
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
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
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
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
|
-
|
65
|
-
|
66
|
-
|
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
|
-
|
97
|
+
},
|
98
|
+
"file_perms": {
|
72
99
|
"owner": "username",
|
73
100
|
"group": "groupname",
|
74
101
|
"mode": "0644"
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
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
|
-
|
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.
|
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:
|
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.
|
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
|