vagrant-bolt 0.3.0 → 0.4.0
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 +4 -4
- data/.github/workflows/spec.yml +71 -0
- data/.rubocop.yml +3 -0
- data/CHANGELOG.md +19 -0
- data/Gemfile +3 -3
- data/README.md +6 -2
- data/acceptance/components/bolt_spec.rb +16 -17
- data/acceptance/skeletons/advanced/Vagrantfile +1 -1
- data/acceptance/skeletons/base/Puppetfile +2 -0
- data/acceptance/skeletons/base/Vagrantfile +1 -1
- data/acceptance/skeletons/provisioner/Vagrantfile +1 -1
- data/acceptance/skeletons/trigger/Vagrantfile +1 -1
- data/acceptance/vagrant-spec.config.rb +3 -3
- data/lib/vagrant-bolt/command.rb +6 -6
- data/lib/vagrant-bolt/config/bolt.rb +2 -0
- data/lib/vagrant-bolt/config/global.rb +9 -5
- data/lib/vagrant-bolt/config_builder/config.rb +6 -1
- data/lib/vagrant-bolt/config_builder/monkey_patches.rb +1 -0
- data/lib/vagrant-bolt/config_builder/provisioner.rb +5 -1
- data/lib/vagrant-bolt/runner.rb +2 -2
- data/lib/vagrant-bolt/util/bolt.rb +1 -1
- data/lib/vagrant-bolt/util/config.rb +3 -2
- data/lib/vagrant-bolt/util/machine.rb +3 -2
- data/lib/vagrant-bolt/version.rb +1 -1
- data/spec/unit/config/bolt_spec.rb +4 -1
- data/spec/unit/config/global_spec.rb +4 -2
- data/spec/unit/runner/runner_spec.rb +11 -1
- data/spec/unit/util/bolt_spec.rb +18 -2
- metadata +8 -25
- data/.travis.yml +0 -28
- data/acceptance/skeletons/base/modules/facts/CHANGELOG.md +0 -26
- data/acceptance/skeletons/base/modules/facts/CONTRIBUTING.md +0 -279
- data/acceptance/skeletons/base/modules/facts/Gemfile +0 -98
- data/acceptance/skeletons/base/modules/facts/LICENSE +0 -201
- data/acceptance/skeletons/base/modules/facts/README.md +0 -45
- data/acceptance/skeletons/base/modules/facts/Rakefile +0 -8
- data/acceptance/skeletons/base/modules/facts/checksums.json +0 -42
- data/acceptance/skeletons/base/modules/facts/lib/puppet/functions/facts/group_by.rb +0 -14
- data/acceptance/skeletons/base/modules/facts/metadata.json +0 -62
- data/acceptance/skeletons/base/modules/facts/plans/info.pp +0 -16
- data/acceptance/skeletons/base/modules/facts/plans/init.pp +0 -13
- data/acceptance/skeletons/base/modules/facts/tasks/bash.json +0 -5
- data/acceptance/skeletons/base/modules/facts/tasks/bash.sh +0 -93
- data/acceptance/skeletons/base/modules/facts/tasks/init.json +0 -10
- data/acceptance/skeletons/base/modules/facts/tasks/powershell.json +0 -4
- data/acceptance/skeletons/base/modules/facts/tasks/powershell.ps1 +0 -56
- data/acceptance/skeletons/base/modules/facts/tasks/ruby.json +0 -4
- data/acceptance/skeletons/base/modules/facts/tasks/ruby.rb +0 -40
@@ -1,16 +0,0 @@
|
|
1
|
-
# A plan that prints basic OS information for the specified nodes. It first
|
2
|
-
# runs the facts task to retrieve facts from the nodes, then compiles the
|
3
|
-
# desired OS information from the os fact value of each nodes.
|
4
|
-
#
|
5
|
-
# The $nodes parameter is a list of the nodes for which to print the OS
|
6
|
-
# information. This plan primarily provides readable formatting, and ignores
|
7
|
-
# nodes that error.
|
8
|
-
plan facts::info(TargetSpec $nodes) {
|
9
|
-
return run_task('facts', $nodes, '_catch_errors' => true).reduce([]) |$info, $r| {
|
10
|
-
if ($r.ok) {
|
11
|
-
$info + "${r.target.name}: ${r[os][name]} ${r[os][release][full]} (${r[os][family]})"
|
12
|
-
} else {
|
13
|
-
$info # don't include any info for nodes which failed
|
14
|
-
}
|
15
|
-
}
|
16
|
-
}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
# A plan that retrieves facts and stores in the inventory for the
|
2
|
-
# specified nodes.
|
3
|
-
#
|
4
|
-
# The $nodes parameter is a list of nodes to retrieve the facts for.
|
5
|
-
plan facts(TargetSpec $nodes) {
|
6
|
-
$result_set = run_task('facts', $nodes)
|
7
|
-
|
8
|
-
$result_set.each |$result| {
|
9
|
-
add_facts($result.target, $result.value)
|
10
|
-
}
|
11
|
-
|
12
|
-
return $result_set
|
13
|
-
}
|
@@ -1,93 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
|
3
|
-
# Delegate to facter if available
|
4
|
-
export PATH="$PATH:/opt/puppetlabs/bin"
|
5
|
-
command -v facter > /dev/null 2>&1 && exec facter -p --json --show-legacy
|
6
|
-
|
7
|
-
minor () {
|
8
|
-
minor="${*#*.}"
|
9
|
-
[ "$minor" == "$*" ] || echo "${minor%%.*}"
|
10
|
-
}
|
11
|
-
|
12
|
-
# Determine the OS name
|
13
|
-
if [ -f /etc/redhat-release ]; then
|
14
|
-
if egrep -iq centos /etc/redhat-release; then
|
15
|
-
name=CentOS
|
16
|
-
elif egrep -iq 'Fedora release' /etc/redhat-release; then
|
17
|
-
name=Fedora
|
18
|
-
fi
|
19
|
-
release=$(sed -r -e 's/^.* release ([0-9]+(\.[0-9]+)?).*$/\1/' \
|
20
|
-
/etc/redhat-release)
|
21
|
-
fi
|
22
|
-
|
23
|
-
if [ -z "${name}" ]; then
|
24
|
-
LSB_RELEASE=$(command -v lsb_release)
|
25
|
-
if [ -n "$LSB_RELEASE" ]; then
|
26
|
-
if [ -z "$name" ]; then
|
27
|
-
name=$($LSB_RELEASE -i | sed -re 's/^.*:[ \t]*//')
|
28
|
-
fi
|
29
|
-
release=$($LSB_RELEASE -r | sed -re 's/^.*:[ \t]*//')
|
30
|
-
fi
|
31
|
-
fi
|
32
|
-
|
33
|
-
# if lsb not available try os-release
|
34
|
-
if [ -z "${name}" ]; then
|
35
|
-
if [ -e /etc/os-release ]; then
|
36
|
-
name=$(grep "^NAME" /etc/os-release | cut -d'=' -f2 | sed "s/\"//g")
|
37
|
-
release=$(grep "^VERSION_ID" /etc/os-release | cut -d'=' -f2 | sed "s/\"//g")
|
38
|
-
elif [-e /usr/lib/os-release ]; then
|
39
|
-
name=$(grep "^NAME" /usr/lib/os-release | cut -d'=' -f2 | sed "s/\"//g")
|
40
|
-
release=$(grep "^VERSION_ID" /usr/lib/os-release | cut -d'=' -f2 | sed "s/\"//g")
|
41
|
-
fi
|
42
|
-
if [ -n "${name}" ]; then
|
43
|
-
if echo "${name}" | egrep -iq "(.*red)(.*hat)"; then
|
44
|
-
name="RedHat"
|
45
|
-
elif echo "${name}" | egrep -iq "debian"; then
|
46
|
-
name="Debian"
|
47
|
-
fi
|
48
|
-
fi
|
49
|
-
fi
|
50
|
-
|
51
|
-
if [ -z "${name}" ]; then
|
52
|
-
name=$(uname)
|
53
|
-
release=$(uname -r)
|
54
|
-
fi
|
55
|
-
|
56
|
-
case $name in
|
57
|
-
RedHat|Fedora|CentOS|Scientific|SLC|Ascendos|CloudLinux)
|
58
|
-
family=RedHat;;
|
59
|
-
HuaweiOS|LinuxMint|Ubuntu|Debian)
|
60
|
-
family=Debian;;
|
61
|
-
*)
|
62
|
-
family=$name;;
|
63
|
-
esac
|
64
|
-
|
65
|
-
# Print it all out
|
66
|
-
if [ -z "$name" ]; then
|
67
|
-
cat <<JSON
|
68
|
-
{
|
69
|
-
"_error": {
|
70
|
-
"kind": "facts/noname",
|
71
|
-
"msg": "Could not determine OS name"
|
72
|
-
}
|
73
|
-
}
|
74
|
-
JSON
|
75
|
-
else
|
76
|
-
cat <<JSON
|
77
|
-
{
|
78
|
-
"os": {
|
79
|
-
"name": "${name}",
|
80
|
-
JSON
|
81
|
-
[ -n "$release" ] && cat <<JSON
|
82
|
-
"release": {
|
83
|
-
"full": "${release}",
|
84
|
-
"major": "${release%%.*}",
|
85
|
-
"minor": "`minor "${release}"`"
|
86
|
-
},
|
87
|
-
JSON
|
88
|
-
cat <<JSON
|
89
|
-
"family": "${family}"
|
90
|
-
}
|
91
|
-
}
|
92
|
-
JSON
|
93
|
-
fi
|
@@ -1,10 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"description": "Gather system facts",
|
3
|
-
"parameters": {},
|
4
|
-
"input_method": "environment",
|
5
|
-
"implementations": [
|
6
|
-
{"name": "ruby.rb", "requirements": ["puppet-agent"]},
|
7
|
-
{"name": "powershell.ps1", "requirements": ["powershell"]},
|
8
|
-
{"name": "bash.sh", "requirements": ["shell"]}
|
9
|
-
]
|
10
|
-
}
|
@@ -1,56 +0,0 @@
|
|
1
|
-
#!powershell.exe
|
2
|
-
|
3
|
-
# Delegate to facter if available
|
4
|
-
if (Get-Command facter -ErrorAction SilentlyContinue) {
|
5
|
-
facter -p --json --show-legacy
|
6
|
-
}
|
7
|
-
else {
|
8
|
-
# The number 2 in the condition below is the value of
|
9
|
-
# the [System.PlatformID]::Win32NT constant. We don't
|
10
|
-
# use the constant here as it doesn't work on Windows
|
11
|
-
# Server Core.
|
12
|
-
if ([System.Environment]::OSVersion.Platform -gt 2) {
|
13
|
-
@'
|
14
|
-
{
|
15
|
-
"_error": {
|
16
|
-
"kind": "facts/noname",
|
17
|
-
"msg": "Could not determine OS name"
|
18
|
-
}
|
19
|
-
}
|
20
|
-
'@
|
21
|
-
}
|
22
|
-
else {
|
23
|
-
$release = [System.Environment]::OSVersion.Version.ToString() -replace '\.[^.]*\z'
|
24
|
-
$version = $release -replace '\.[^.]*\z'
|
25
|
-
|
26
|
-
# This fails for regular users unless explicitly enabled
|
27
|
-
$os = Get-CimInstance Win32_OperatingSystem -ErrorAction SilentlyContinue
|
28
|
-
$consumerrel = $os.ProductType -eq '1'
|
29
|
-
|
30
|
-
$release = switch($version){
|
31
|
-
'10.0'{ if ($consumerrel) { '10' } else { '2016' } }
|
32
|
-
'6.3' { if ($consumerrel) { '8.1' } else { '2012 R2' } }
|
33
|
-
'6.2' { if ($consumerrel) { '8' } else { '2012' } }
|
34
|
-
'6.1' { if ($consumerrel) { '7' } else { '2008 R2' } }
|
35
|
-
'6.0' { if ($consumerrel) { 'Vista' } else { '2008' } }
|
36
|
-
'5.2' {
|
37
|
-
if ($consumerrel) { 'XP' } else {
|
38
|
-
if ($os.OtherTypeDescription -eq 'R2') { '2003 R2' } else { '2003' }
|
39
|
-
}
|
40
|
-
}
|
41
|
-
}
|
42
|
-
|
43
|
-
@"
|
44
|
-
{
|
45
|
-
"os": {
|
46
|
-
"name": "windows",
|
47
|
-
"release": {
|
48
|
-
"full": "$release",
|
49
|
-
"major": "$release"
|
50
|
-
},
|
51
|
-
"family": "windows"
|
52
|
-
}
|
53
|
-
}
|
54
|
-
"@
|
55
|
-
}
|
56
|
-
}
|
@@ -1,40 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
def facter_executable
|
5
|
-
if Gem.win_platform?
|
6
|
-
require 'win32/registry'
|
7
|
-
installed_dir =
|
8
|
-
begin
|
9
|
-
Win32::Registry::HKEY_LOCAL_MACHINE.open('SOFTWARE\Puppet Labs\Puppet') do |reg|
|
10
|
-
# rubocop:disable Style/RescueModifier
|
11
|
-
# Rescue missing key
|
12
|
-
dir = reg['RememberedInstallDir64'] rescue ''
|
13
|
-
# Both keys may exist, make sure the dir exists
|
14
|
-
break dir if File.exist?(dir)
|
15
|
-
|
16
|
-
# Rescue missing key
|
17
|
-
reg['RememberedInstallDir'] rescue ''
|
18
|
-
# rubocop:enable Style/RescueModifier
|
19
|
-
end
|
20
|
-
rescue Win32::Registry::Error
|
21
|
-
# Rescue missing registry path
|
22
|
-
''
|
23
|
-
end
|
24
|
-
|
25
|
-
facter =
|
26
|
-
if installed_dir.empty?
|
27
|
-
''
|
28
|
-
else
|
29
|
-
File.join(installed_dir, 'bin', 'facter')
|
30
|
-
end
|
31
|
-
else
|
32
|
-
facter = '/opt/puppetlabs/puppet/bin/facter'
|
33
|
-
end
|
34
|
-
|
35
|
-
# Fall back to PATH lookup if puppet-agent isn't installed
|
36
|
-
File.exist?(facter) ? facter : 'facter'
|
37
|
-
end
|
38
|
-
|
39
|
-
# Delegate to facter
|
40
|
-
exec(facter_executable, '-p', '--json', '--show-legacy')
|