ref_arch_setup 0.0.1 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Boltdir/Puppetfile +2 -0
- data/CONTRIBUTING.md +27 -6
- data/README.md +169 -5
- data/bin/ref_arch_setup +171 -22
- data/fixtures/pe.conf +119 -0
- data/fixtures/puppet-enterprise-2019.0-rc1-7-gd82666f-el-7-x86_64.tar +0 -0
- data/lib/ref_arch_setup.rb +8 -2
- data/lib/ref_arch_setup/bolt_helper.rb +263 -0
- data/lib/ref_arch_setup/cli.rb +76 -7
- data/lib/ref_arch_setup/download_helper.rb +399 -0
- data/lib/ref_arch_setup/install.rb +425 -14
- data/lib/ref_arch_setup/version.rb +1 -1
- data/modules/ref_arch_setup/tasks/download_pe_tarball.json +13 -0
- data/modules/ref_arch_setup/tasks/download_pe_tarball.sh +48 -0
- data/modules/ref_arch_setup/tasks/generate_pe_conf.json +10 -0
- data/modules/ref_arch_setup/tasks/generate_pe_conf.rb +128 -0
- data/modules/ref_arch_setup/tasks/install_pe.json +14 -0
- data/modules/ref_arch_setup/tasks/install_pe.sh +132 -0
- metadata +59 -6
@@ -0,0 +1,13 @@
|
|
1
|
+
{
|
2
|
+
"description": "A task to download the specified PE tarball",
|
3
|
+
"parameters": {
|
4
|
+
"url": {
|
5
|
+
"description": "The URL for the specified tarball",
|
6
|
+
"type": "Pattern['https?://.*\.(tar|tar\.gz)$']"
|
7
|
+
},
|
8
|
+
"destination": {
|
9
|
+
"description": "The folder where the tarball should be saved",
|
10
|
+
"type": "Optional[String[1]]"
|
11
|
+
}
|
12
|
+
}
|
13
|
+
}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
# Download PE Tarball:
|
4
|
+
# This is a script-based task as the target node may not have Ruby installed.
|
5
|
+
# Provide the URL and optionally an existing destination directory (the default is /tmp/ref_arch_setup).
|
6
|
+
# Run the task as per the following examples:
|
7
|
+
#
|
8
|
+
# Localhost with default destination -
|
9
|
+
# bolt task run ref_arch_setup::download_pe_tarball url=http://test.net/test.gz --modulepath ./modules --nodes localhost
|
10
|
+
#
|
11
|
+
# Remote node as root user with specified destination -
|
12
|
+
# bolt task run ref_arch_setup::download_pe_tarball url=http://test.net/test.gz destination=/tmp/ras --modulepath ./modules --nodes tjsss144r6ouvhc --user root
|
13
|
+
|
14
|
+
URL=$PT_url
|
15
|
+
DESTINATION=${PT_destination:-/tmp/ref_arch_setup}
|
16
|
+
FILENAME=$(basename $PT_url)
|
17
|
+
DESTINATION_PATH=$DESTINATION/$FILENAME
|
18
|
+
|
19
|
+
echo URL: $URL
|
20
|
+
echo Destination: $DESTINATION
|
21
|
+
echo Filename: $FILENAME
|
22
|
+
echo
|
23
|
+
|
24
|
+
# check for the directory; attempt to create if it doesn't exist
|
25
|
+
if [ -d "$DESTINATION" ]; then
|
26
|
+
echo "Destination directory exists; proceeding"
|
27
|
+
else
|
28
|
+
echo "Destination directory does not exist; attempting to create"
|
29
|
+
mkdir -p $DESTINATION
|
30
|
+
fi
|
31
|
+
|
32
|
+
# check for the directory again; proceed if it exists, otherwise exit
|
33
|
+
if [ -d "$DESTINATION" ]; then
|
34
|
+
echo Downloading $URL to $DESTINATION_PATH
|
35
|
+
|
36
|
+
# download and check for failure
|
37
|
+
if curl -f -L -o $DESTINATION_PATH $URL ; then
|
38
|
+
echo "Download complete"
|
39
|
+
exit 0
|
40
|
+
else
|
41
|
+
echo "Download failed; exiting"
|
42
|
+
exit 1
|
43
|
+
fi
|
44
|
+
|
45
|
+
else
|
46
|
+
echo "Destination directory does not exist and could not be created; exiting"
|
47
|
+
exit 1
|
48
|
+
fi
|
@@ -0,0 +1,128 @@
|
|
1
|
+
#!/opt/puppetlabs/puppet/bin/ruby
|
2
|
+
require "fileutils"
|
3
|
+
|
4
|
+
# rubocop:disable Style/FormatStringToken
|
5
|
+
pe_conf = <<~PE_CONF
|
6
|
+
#----------------------------------------------------------------------------
|
7
|
+
# Puppet Enterprise installer configuration file
|
8
|
+
# https://docs.puppet.com/pe/latest/install_pe_conf_param.html
|
9
|
+
#
|
10
|
+
# Format: Hocon
|
11
|
+
# https://docs.puppet.com/pe/latest/config_hocon.html
|
12
|
+
#----------------------------------------------------------------------------
|
13
|
+
{
|
14
|
+
#--------------------------------------------------------------------------
|
15
|
+
# ⚠️ REQUIRED FOR INSTALLATION ⚠️
|
16
|
+
#
|
17
|
+
# The password to log into the Puppet Enterprise console.
|
18
|
+
#
|
19
|
+
# After installation, you may set the console_admin_password to an empty
|
20
|
+
# string to avoid storing a password in plain text.
|
21
|
+
#--------------------------------------------------------------------------
|
22
|
+
"console_admin_password": "#{ENV['PT_console_password']}"
|
23
|
+
|
24
|
+
|
25
|
+
#--------------------------------------------------------------------------
|
26
|
+
# PE Component assignments.
|
27
|
+
#
|
28
|
+
# If you're performing a monolithic install (recommended), there is no need
|
29
|
+
# to change the default settings, and you do not need to set the
|
30
|
+
# puppetdb_host and console_host parameters.
|
31
|
+
#
|
32
|
+
# When performing a split install, do not use the %{::trusted.certname} fact.
|
33
|
+
# Instead set the FQDN for all three PE component nodes.
|
34
|
+
# For more information, refer to:
|
35
|
+
# https://docs.puppet.com/pe/latest/install_text_mode_split.html
|
36
|
+
#
|
37
|
+
# Overview of PE Components:
|
38
|
+
# https://docs.puppet.com/pe/latest/pe_architecture_overview.html
|
39
|
+
#-------------------------------------------------------------------------
|
40
|
+
|
41
|
+
# Puppet Enterprise Master
|
42
|
+
"puppet_enterprise::puppet_master_host": "%{::trusted.certname}"
|
43
|
+
|
44
|
+
# Puppet Enterprise Console
|
45
|
+
#"puppet_enterprise::console_host": ""
|
46
|
+
|
47
|
+
# PuppetDB
|
48
|
+
#"puppet_enterprise::puppetdb_host": ""
|
49
|
+
|
50
|
+
# Hostname of database node if pe-postgres is being run on its own node
|
51
|
+
#"puppet_enterprise::database_host": ""
|
52
|
+
|
53
|
+
#--------------------------------------------------------------------------
|
54
|
+
# DATABASE CONFIGURATION
|
55
|
+
#
|
56
|
+
# Puppet Enterprise uses PostgreSQL as a database backend.
|
57
|
+
# PE can install and manage a new one (recommended), or you can use an
|
58
|
+
# existing instance.
|
59
|
+
#
|
60
|
+
# For details on using an existing PostgreSQL database, visit:
|
61
|
+
# https://docs.puppet.com/pe/latest/install_system_requirements.html
|
62
|
+
#
|
63
|
+
# UPGRADE NOTE:
|
64
|
+
# If you’re upgrading and have previously used non-default database names and
|
65
|
+
# users, you must uncomment and change these parameters to match what you
|
66
|
+
# have used.
|
67
|
+
#--------------------------------------------------------------------------
|
68
|
+
|
69
|
+
#"puppet_enterprise::activity_database_name": "pe-activity"
|
70
|
+
#"puppet_enterprise::activity_service_migration_db_user": "pe-activity"
|
71
|
+
#"puppet_enterprise::activity_service_regular_db_user": "pe-activity"
|
72
|
+
#"puppet_enterprise::classifier_database_name": "pe-classifier"
|
73
|
+
#"puppet_enterprise::classifier_service_migration_db_user": "pe-classifier"
|
74
|
+
#"puppet_enterprise::classifier_service_regular_db_user": "pe-classifier"
|
75
|
+
#"puppet_enterprise::orchestrator_database_name": "pe-orchestrator"
|
76
|
+
#"puppet_enterprise::orchestrator_service_migration_db_user": "pe-orchestrator"
|
77
|
+
#"puppet_enterprise::orchestrator_service_regular_db_user": "pe-orchestrator"
|
78
|
+
#"puppet_enterprise::rbac_database_name": "pe-rbac"
|
79
|
+
#"puppet_enterprise::rbac_service_migration_db_user": "pe-rbac"
|
80
|
+
#"puppet_enterprise::rbac_service_regular_db_user": "pe-rbac"
|
81
|
+
#"puppet_enterprise::puppetdb_database_name": "pe-puppetdb"
|
82
|
+
#"puppet_enterprise::puppetdb_database_user": "pe-puppetdb"
|
83
|
+
|
84
|
+
|
85
|
+
# EXTERNAL POSTGRES OPTIONS ONLY
|
86
|
+
# If you're using an existing PostgreSQL instance that was not set up by
|
87
|
+
# Puppet Enterprise, set the following parameters:
|
88
|
+
|
89
|
+
#"puppet_enterprise::database_ssl": false
|
90
|
+
#"puppet_enterprise::database_cert_auth": false
|
91
|
+
#"puppet_enterprise::activity_database_password": "PASSWORD"
|
92
|
+
#"puppet_enterprise::classifier_database_password": "PASSWORD"
|
93
|
+
#"puppet_enterprise::orchestrator_database_password": "PASSWORD"
|
94
|
+
#"puppet_enterprise::rbac_database_password": "PASSWORD"
|
95
|
+
#"puppet_enterprise::puppetdb_database_password": "PASSWORD"
|
96
|
+
|
97
|
+
|
98
|
+
#--------------------------------------------------------------------------
|
99
|
+
# ADVANCED AND CUSTOM PARAMETERS
|
100
|
+
#
|
101
|
+
# You can use the following parameters as needed, or add your own parameters
|
102
|
+
# to this section.
|
103
|
+
#
|
104
|
+
# For a complete list of parameters and what they do, visit:
|
105
|
+
# https://docs.puppet.com/pe/latest/install_pe_conf_param.html
|
106
|
+
#--------------------------------------------------------------------------
|
107
|
+
|
108
|
+
# DNS altnames to be added to the SSL certificate generated for the Puppet
|
109
|
+
# master node. Only used at install time.
|
110
|
+
#"pe_install::puppet_master_dnsaltnames": ["puppet"]
|
111
|
+
|
112
|
+
#Enabling this configures code manager, all three below values should be enabled and populated at the same time.
|
113
|
+
#"puppet_enterprise::profile::master::code_manager_auto_configure": true
|
114
|
+
|
115
|
+
#The ssh url to your existing control repo.
|
116
|
+
#"puppet_enterprise::profile::master::r10k_remote": "git@your.git.server.com:puppet/control.git"
|
117
|
+
|
118
|
+
#The private key to your puppetmaster for establishing key-based ssh authentication to your vcs.
|
119
|
+
#"puppet_enterprise::profile::master::r10k_private_key": "/etc/puppetlabs/puppetserver/ssh/id-control_repo.rsa"
|
120
|
+
|
121
|
+
#test key that does nothing
|
122
|
+
"ref_arch::name": "basic"
|
123
|
+
}
|
124
|
+
PE_CONF
|
125
|
+
# rubocop:enable Style/FormatStringToken
|
126
|
+
|
127
|
+
FileUtils.mkdir_p "/tmp/ref_arch_setup" unless Dir.exist? "/tmp/ref_arch_setup"
|
128
|
+
File.open("/tmp/ref_arch_setup/pe.conf", "w") { |f| f.write(pe_conf) }
|
@@ -0,0 +1,14 @@
|
|
1
|
+
{
|
2
|
+
"description": "Installs PE master on a node",
|
3
|
+
|
4
|
+
"parameters": {
|
5
|
+
"pe_tarball_path": {
|
6
|
+
"description": "The file path to the PE tarball that was downloaded and copied to the master",
|
7
|
+
"type": "String[1]"
|
8
|
+
},
|
9
|
+
"pe_conf_path": {
|
10
|
+
"description": "The file path to the pe.conf file that was copied to the master",
|
11
|
+
"type": "String[1]"
|
12
|
+
}
|
13
|
+
}
|
14
|
+
}
|
@@ -0,0 +1,132 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
# Install PE:
|
4
|
+
# First, copy the PE installer tarball and pe_conf file to the node
|
5
|
+
# Then, execute the task as per the following example:
|
6
|
+
# bolt task --modulepath modules run 'ref_arch_setup::install_pe pe_tarball_path=puppet-enterprise-2018.1.1-el-7-x86_64.tar.gz pe_conf_path=pe.conf' --nodes bdjshmr8bx75q2a.delivery.puppetlabs.net
|
7
|
+
|
8
|
+
execute_command() {
|
9
|
+
cmd=$1
|
10
|
+
echo "Executing: $cmd"
|
11
|
+
eval $cmd
|
12
|
+
cmd_exit_code=$?
|
13
|
+
|
14
|
+
# if number of args is 1, check for exit code = 0, otherwise check for exit code = value of second arg
|
15
|
+
if [ $# -eq 1 ]
|
16
|
+
then
|
17
|
+
expected_exit_code=0
|
18
|
+
else
|
19
|
+
expected_exit_code=$2
|
20
|
+
fi
|
21
|
+
if [ $cmd_exit_code -ne $expected_exit_code ]
|
22
|
+
then
|
23
|
+
echo "Command '$1' failed - expected_exit_code: $expected_exit_code, actual_exit_code: $cmd_exit_code"
|
24
|
+
exit 1
|
25
|
+
fi
|
26
|
+
}
|
27
|
+
|
28
|
+
# Sometimes it takes more than one run ...
|
29
|
+
|
30
|
+
execute_puppet_until_idempotent() {
|
31
|
+
puppet_command="puppet agent -t"
|
32
|
+
|
33
|
+
# The following could be converted into parameters with defaults ...
|
34
|
+
|
35
|
+
maximum_number_of_puppet_runs=8
|
36
|
+
sleep_seconds_when_puppet_run_in_progress=16
|
37
|
+
retry_when_success_with_failures=false
|
38
|
+
|
39
|
+
for run in $(seq 1 $maximum_number_of_puppet_runs); do
|
40
|
+
echo "Executing: '$puppet_command'"
|
41
|
+
|
42
|
+
# To both capture and output command output ...
|
43
|
+
exec 5>&1
|
44
|
+
puppet_command_output=$($puppet_command | tee /dev/fd/5; exit "${PIPESTATUS[0]}")
|
45
|
+
puppet_exit_code=$?
|
46
|
+
|
47
|
+
if echo "$puppet_command_output" | grep -q "Run of Puppet configuration client already in progress"; then
|
48
|
+
puppet_run_in_progress=true
|
49
|
+
else
|
50
|
+
puppet_run_in_progress=false
|
51
|
+
fi
|
52
|
+
|
53
|
+
# 0: The run succeeded with no changes or failures; the system was already in the desired state
|
54
|
+
if [ $puppet_exit_code -eq 0 ]; then
|
55
|
+
break
|
56
|
+
fi
|
57
|
+
|
58
|
+
# 1: The run failed, or wasn't attempted due to another run already in progress.
|
59
|
+
if [ $puppet_exit_code -eq 1 ]; then
|
60
|
+
if [ "$puppet_run_in_progress" = true ]; then
|
61
|
+
echo "Sleeping $sleep_seconds_when_puppet_run_in_progress seconds while waiting for another run already in progress"
|
62
|
+
sleep $sleep_seconds_when_puppet_run_in_progress
|
63
|
+
continue
|
64
|
+
else
|
65
|
+
echo "ERROR: '$puppet_command' failed with exit code: $puppet_exit_code"
|
66
|
+
exit 1
|
67
|
+
fi
|
68
|
+
fi
|
69
|
+
|
70
|
+
# 2: The run succeeded, and some resources were changed.
|
71
|
+
if [ $puppet_exit_code -eq 2 ]; then
|
72
|
+
continue
|
73
|
+
fi
|
74
|
+
|
75
|
+
# 4: The run succeeded, and some resources failed.
|
76
|
+
if [ $puppet_exit_code -eq 4 ]; then
|
77
|
+
if [ "$retry_when_success_with_failures" = true ]; then
|
78
|
+
continue
|
79
|
+
else
|
80
|
+
echo "ERROR: '$puppet_command' failed with exit code: $puppet_exit_code"
|
81
|
+
exit 1
|
82
|
+
fi
|
83
|
+
fi
|
84
|
+
|
85
|
+
# 6: The run succeeded, and included both changes and failures.
|
86
|
+
if [ $puppet_exit_code -eq 6 ]; then
|
87
|
+
if [ "$retry_when_success_with_failures" = true ] ; then
|
88
|
+
continue
|
89
|
+
else
|
90
|
+
echo "ERROR: '$puppet_command' failed with exit code: $puppet_exit_code"
|
91
|
+
exit 1
|
92
|
+
fi
|
93
|
+
fi
|
94
|
+
done
|
95
|
+
}
|
96
|
+
|
97
|
+
#check that pe.conf is present
|
98
|
+
if [ ! -f $PT_pe_conf_path ]; then
|
99
|
+
echo "ERROR: Specified pe.conf file not found: $PT_pe_conf_path"
|
100
|
+
exit 1
|
101
|
+
fi
|
102
|
+
|
103
|
+
#check that pe tarball is present
|
104
|
+
if [ ! -f $PT_pe_tarball_path ]; then
|
105
|
+
echo "ERROR: Specified pe tarball not found: $PT_pe_tarball_path"
|
106
|
+
exit 1
|
107
|
+
fi
|
108
|
+
|
109
|
+
# Install tar using existing package manager if it is not already installed
|
110
|
+
if [ "" == "`which tar`" ]
|
111
|
+
then
|
112
|
+
echo "Tar Not Found"
|
113
|
+
if [ -n "`which apt-get`" ]
|
114
|
+
then
|
115
|
+
execute_command "apt-get -y install tar"
|
116
|
+
elif [ -n "`which yum`" ]
|
117
|
+
then
|
118
|
+
execute_command "yum -y install tar"
|
119
|
+
else
|
120
|
+
echo "OS does not have apt-get or yum package manager"
|
121
|
+
exit 1
|
122
|
+
fi
|
123
|
+
fi
|
124
|
+
|
125
|
+
execute_command "tar -xvf $PT_pe_tarball_path -C /tmp/ref_arch_setup"
|
126
|
+
|
127
|
+
# Using -* so we don't have to know the specific version, or parse it from the install path
|
128
|
+
execute_command "sh /tmp/ref_arch_setup/puppet-enterprise-*/puppet-enterprise-installer -c $PT_pe_conf_path"
|
129
|
+
|
130
|
+
# Must run puppet agent twice, see https://puppet.com/docs/pe/2017.3/installing/installing_pe.html#text-mode-installation-options-for-monolithic-installations
|
131
|
+
execute_puppet_until_idempotent
|
132
|
+
exit 0
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ref_arch_setup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-10-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bolt
|
@@ -16,14 +16,56 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.22.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 0.22.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: oga
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.15'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.15'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: beaker
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '4.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '4.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: beaker-vmpooler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
27
69
|
description: |-
|
28
70
|
This gem provides methods for for setting up /
|
29
71
|
Puppet Enterprise reference architectures
|
@@ -34,14 +76,25 @@ executables:
|
|
34
76
|
extensions: []
|
35
77
|
extra_rdoc_files: []
|
36
78
|
files:
|
79
|
+
- Boltdir/Puppetfile
|
37
80
|
- CONTRIBUTING.md
|
38
81
|
- MAINTAINERS
|
39
82
|
- README.md
|
40
83
|
- bin/ref_arch_setup
|
84
|
+
- fixtures/pe.conf
|
85
|
+
- fixtures/puppet-enterprise-2019.0-rc1-7-gd82666f-el-7-x86_64.tar
|
41
86
|
- lib/ref_arch_setup.rb
|
87
|
+
- lib/ref_arch_setup/bolt_helper.rb
|
42
88
|
- lib/ref_arch_setup/cli.rb
|
89
|
+
- lib/ref_arch_setup/download_helper.rb
|
43
90
|
- lib/ref_arch_setup/install.rb
|
44
91
|
- lib/ref_arch_setup/version.rb
|
92
|
+
- modules/ref_arch_setup/tasks/download_pe_tarball.json
|
93
|
+
- modules/ref_arch_setup/tasks/download_pe_tarball.sh
|
94
|
+
- modules/ref_arch_setup/tasks/generate_pe_conf.json
|
95
|
+
- modules/ref_arch_setup/tasks/generate_pe_conf.rb
|
96
|
+
- modules/ref_arch_setup/tasks/install_pe.json
|
97
|
+
- modules/ref_arch_setup/tasks/install_pe.sh
|
45
98
|
homepage: https://github.com/puppetlabs/ref_arch_setup
|
46
99
|
licenses:
|
47
100
|
- Apache2
|
@@ -54,7 +107,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
54
107
|
requirements:
|
55
108
|
- - ">="
|
56
109
|
- !ruby/object:Gem::Version
|
57
|
-
version:
|
110
|
+
version: 2.3.0
|
58
111
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
59
112
|
requirements:
|
60
113
|
- - ">="
|
@@ -62,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
62
115
|
version: '0'
|
63
116
|
requirements: []
|
64
117
|
rubyforge_project:
|
65
|
-
rubygems_version: 2.
|
118
|
+
rubygems_version: 2.6.13
|
66
119
|
signing_key:
|
67
120
|
specification_version: 4
|
68
121
|
summary: Tool for setting up reference architectures
|