diff --git a/README.md b/README.md
index 3275241..21cbbdb 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,12 @@
# basic-aio
-## Bootstrap a basic Puppet environment using AIO packages
+## Bootstrap a basic OpenVox environment
+
+The production branch of this repo contains a Vagrantfile that will build an OpenVox
+server and agent with the following configured out of the box:
-The production branch of this repo contains a Vagrantfile that will build a Puppet
-server using the Puppet all-in-one packages with the following configured
-out of the box:
* [r10k](https://forge.puppet.com/puppet/r10k) (with this repo as its control repo)
* [Choria mcollective](http://choria.io/)
-* [PuppetDB](https://puppet.com/docs/puppetdb/)
+* [openvoxdb](https://puppet.com/docs/puppetdb/)
## Prerequisites
@@ -21,8 +21,8 @@ The following environment variables are used to configure the Vagrant environmen
| Environment variable | Default value | Description |
| -------------------- | ------------- | ----------- |
| `IP_SUBNET` | `192.168.32` | The internal IP subnet used by Vagrant |
-| `PUPPET_VERSION` | none (use the latest) | The Puppet agent version |
-| `PUPPET_RELEASE` | `8` | The Puppet major release version |
+| `OPENVOX_VERSION` | none (use the latest) | The OpenVox agent version |
+| `OPENVOX_RELEASE` | `8` | The OpenVox major release version |
| `EL_RELEASE` | `9` | The EL release of the base box |
| `EL_OS_NAME` | `centos` | The base box OS |
| `BOX` | Depends on EL_OS_NAME | The base box name |
diff --git a/Vagrantfile b/Vagrantfile
index a414008..cb9ec3a 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -3,8 +3,8 @@
ENV['VAGRANT_EXPERIMENTAL'] = 'typed_triggers'
ip_subnet = ENV.fetch('IP_SUBNET', '192.168.32')
-puppet_version = ENV.fetch('PUPPET_VERSION', '')
-puppet_release = puppet_version.empty? ? ENV.fetch('PUPPET_RELEASE', '8') : puppet_version.split('.').first
+openvox_version = ENV.fetch('OPENVOX_VERSION', '')
+openvox_release = openvox_version.empty? ? ENV.fetch('OPENVOX_RELEASE', '8') : openvox_version.split('.').first
el_release = ENV.fetch('EL_RELEASE', '9')
el_os_name = ENV.fetch('EL_OS_NAME', 'centos')
def select_box(el_os_name, el_release)
@@ -45,22 +45,22 @@ Vagrant.configure('2') do |config|
config.vm.box = box
config.ssh.forward_agent = true
- config.vm.define 'puppet' do |puppetserver|
- puppetserver.vm.provider 'virtualbox' do |vb|
+ config.vm.define 'puppet' do |server|
+ server.vm.provider 'virtualbox' do |vb|
vb.memory = '4096'
vb.cpus = 2
vb.name = 'puppet.vagrant'
end
- puppetserver.vm.provider 'libvirt' do |libvirt|
+ server.vm.provider 'libvirt' do |libvirt|
libvirt.memory = '4096'
libvirt.cpus = 2
libvirt.qemu_use_session = false
end
- puppetserver.vm.hostname = 'puppet.vagrant'
- puppetserver.vm.network 'private_network', ip: "#{ip_subnet}.5"
- puppetserver.vm.synced_folder '.', '/vagrant',
+ server.vm.hostname = 'puppet.vagrant'
+ server.vm.network 'private_network', ip: "#{ip_subnet}.5"
+ server.vm.synced_folder '.', '/vagrant',
type: 'rsync',
rsync__exclude: ['spec/fixtures/modules/']
end
@@ -89,8 +89,8 @@ Vagrant.configure('2') do |config|
trigger.run = {
inline: [
'bolt plan run role -t all --run-as root',
- "puppet_release=#{puppet_release}",
- "puppet_version=#{puppet_version}",
+ "openvox_release=#{openvox_release}",
+ "openvox_version=#{openvox_version}",
].concat(bolt_debug_options)
.concat(stream ? ['--stream'] : [])
.concat(native_ssh ? ['--native-ssh'] : [])
diff --git a/data/common.yaml b/data/common.yaml
index b2a2136..b6d6827 100644
--- a/data/common.yaml
+++ b/data/common.yaml
@@ -9,15 +9,17 @@ mcollective::site_policies:
facts: "*"
classes: "*"
-r10k::remote: "%{facts.role__puppetserver__r10k_remote}"
+r10k::remote: "%{facts.role__server__r10k_remote}"
-profile::puppetserver::config::autosign:
+profile::server::config::autosign:
- "*.%{facts.networking.domain}"
- vagrant.mcollective
puppetdb::master::config::create_puppet_service_resource: false
puppetdb::manage_firewall: false
puppetdb::postgres_version: '17'
+puppetdb::puppetdb_package: 'openvoxdb'
+puppetdb::master::config::terminus_package: 'openvoxdb-termini'
choria::manage_package_repo: true
choria::broker::network_broker: true
diff --git a/data/nodes/puppet.vagrant.yaml b/data/nodes/puppet.vagrant.yaml
index b02525e..e536c77 100644
--- a/data/nodes/puppet.vagrant.yaml
+++ b/data/nodes/puppet.vagrant.yaml
@@ -1,5 +1,5 @@
---
classes:
- - role::puppetserver
+ - role::server
mcollective::client: true
diff --git a/site/profile/REFERENCE.md b/site/profile/REFERENCE.md
index 80d3571..2a443c9 100644
--- a/site/profile/REFERENCE.md
+++ b/site/profile/REFERENCE.md
@@ -8,11 +8,11 @@
* [`profile::agent`](#profile--agent): Configures the `puppet` service
* [`profile::base`](#profile--base): Base OS customization
-* [`profile::puppetdb`](#profile--puppetdb): Configure puppetdb
-* [`profile::puppetserver`](#profile--puppetserver): Configure puppetserver
-* [`profile::puppetserver::config`](#profile--puppetserver--config): Configures the puppet server
-* [`profile::puppetserver::install`](#profile--puppetserver--install): Install puppetserver package
-* [`profile::puppetserver::service`](#profile--puppetserver--service): Configure puppetserver service
+* [`profile::db`](#profile--db): Configure db
+* [`profile::server`](#profile--server): Configure server
+* [`profile::server::config`](#profile--server--config): Configures the puppet server
+* [`profile::server::install`](#profile--server--install): Install server package
+* [`profile::server::service`](#profile--server--service): Configure server service
## Classes
@@ -78,45 +78,45 @@ Data type: `Array`
A list of packages to manage
-### `profile::puppetdb`
+### `profile::db`
-Configure puppetdb
+Configure db
#### Examples
#####
```puppet
-include profile::puppetdb
+include profile::db
```
-### `profile::puppetserver`
+### `profile::server`
-Configure puppetserver
+Configure server
#### Examples
#####
```puppet
-include profile::puppetserver
+include profile::server
```
#### Parameters
-The following parameters are available in the `profile::puppetserver` class:
+The following parameters are available in the `profile::server` class:
-* [`manage_firewall`](#-profile--puppetserver--manage_firewall)
+* [`manage_firewall`](#-profile--server--manage_firewall)
-##### `manage_firewall`
+##### `manage_firewall`
Data type: `Boolean`
-Manage the puppetserver firewall configuration
+Manage the server firewall configuration
Default value: `true`
-### `profile::puppetserver::config`
+### `profile::server::config`
Configures the puppet server
@@ -125,42 +125,97 @@ Configures the puppet server
#####
```puppet
-include profile::puppetserver::config
+include profile::server::config
```
#### Parameters
-The following parameters are available in the `profile::puppetserver::config` class:
+The following parameters are available in the `profile::server::config` class:
-* [`autosign`](#-profile--puppetserver--config--autosign)
+* [`autosign`](#-profile--server--config--autosign)
-##### `autosign`
+##### `autosign`
Data type: `Array[String]`
List of certnames or domain name globs
-### `profile::puppetserver::install`
+### `profile::server::install`
-Install puppetserver package
+Install server package
#### Examples
#####
```puppet
-include profile::puppetserver::install
+include profile::server::install
```
-### `profile::puppetserver::service`
+#### Parameters
+
+The following parameters are available in the `profile::server::install` class:
+
+* [`package`](#-profile--server--install--package)
+* [`package_ensure`](#-profile--server--install--package_ensure)
+
+##### `package`
+
+Data type: `String[1]`
+
+The name of the package to install
+
+Default value: `'openvox-server'`
+
+##### `package_ensure`
-Configure puppetserver service
+Data type: `String[1]`
+
+The ensure value for the package
+
+Default value: `'installed'`
+
+### `profile::server::service`
+
+Configure server service
#### Examples
#####
```puppet
-include profile::puppetserver::service
+include profile::server::service
```
+#### Parameters
+
+The following parameters are available in the `profile::server::service` class:
+
+* [`service_name`](#-profile--server--service--service_name)
+* [`service_ensure`](#-profile--server--service--service_ensure)
+* [`service_enable`](#-profile--server--service--service_enable)
+
+##### `service_name`
+
+Data type: `String[1]`
+
+The name of the service to manage
+
+Default value: `'puppetserver'`
+
+##### `service_ensure`
+
+Data type: `String[1]`
+
+The ensure value for the service
+
+Default value: `'running'`
+
+##### `service_enable`
+
+Data type: `Boolean`
+
+Whether to enable the service at boot
+
+Default value: `true`
+
diff --git a/site/profile/data/common.yaml b/site/profile/data/common.yaml
index bb36a7a..82a4f89 100644
--- a/site/profile/data/common.yaml
+++ b/site/profile/data/common.yaml
@@ -1,8 +1,7 @@
---
profile::base::packages: []
-profile::puppetserver::install::package: puppetserver
-profile::puppetserver::config::autosign: []
+profile::server::config::autosign: []
profile::agent::service: puppet
profile::agent::service_ensure: running
diff --git a/site/profile/manifests/puppetdb.pp b/site/profile/manifests/db.pp
similarity index 83%
rename from site/profile/manifests/puppetdb.pp
rename to site/profile/manifests/db.pp
index 0fb4997..a448bbe 100644
--- a/site/profile/manifests/puppetdb.pp
+++ b/site/profile/manifests/db.pp
@@ -1,8 +1,8 @@
-# @summary Configure puppetdb
+# @summary Configure db
#
# @example
-# include profile::puppetdb
-class profile::puppetdb {
+# include profile::db
+class profile::db {
include 'puppetdb'
include 'puppetdb::master::config'
diff --git a/site/profile/manifests/puppetserver.pp b/site/profile/manifests/puppetserver.pp
deleted file mode 100644
index 2b7f3e0..0000000
--- a/site/profile/manifests/puppetserver.pp
+++ /dev/null
@@ -1,27 +0,0 @@
-# @summary Configure puppetserver
-#
-# @param manage_firewall Manage the puppetserver firewall configuration
-#
-# @example
-# include profile::puppetserver
-class profile::puppetserver (
- Boolean $manage_firewall = true,
-) {
- if $manage_firewall {
- include 'firewalld'
-
- firewalld_service { 'puppetmaster':
- ensure => present,
- zone => 'public',
- service => 'puppetmaster',
- }
- }
-
- include 'profile::puppetserver::install'
- include 'profile::puppetserver::config'
- include 'profile::puppetserver::service'
-
- Class['profile::puppetserver::install']
- -> Class['profile::puppetserver::config']
- ~> Class['profile::puppetserver::service']
-}
diff --git a/site/profile/manifests/puppetserver/install.pp b/site/profile/manifests/puppetserver/install.pp
deleted file mode 100644
index f7864ee..0000000
--- a/site/profile/manifests/puppetserver/install.pp
+++ /dev/null
@@ -1,9 +0,0 @@
-# @summary Install puppetserver package
-#
-# @example
-# include profile::puppetserver::install
-class profile::puppetserver::install {
- package { 'puppetserver':
- ensure => installed,
- }
-}
diff --git a/site/profile/manifests/puppetserver/service.pp b/site/profile/manifests/puppetserver/service.pp
deleted file mode 100644
index 71f2a4b..0000000
--- a/site/profile/manifests/puppetserver/service.pp
+++ /dev/null
@@ -1,10 +0,0 @@
-# @summary Configure puppetserver service
-#
-# @example
-# include profile::puppetserver::service
-class profile::puppetserver::service {
- service { 'puppetserver':
- ensure => running,
- enable => true,
- }
-}
diff --git a/site/profile/manifests/server.pp b/site/profile/manifests/server.pp
new file mode 100644
index 0000000..d314562
--- /dev/null
+++ b/site/profile/manifests/server.pp
@@ -0,0 +1,27 @@
+# @summary Configure server
+#
+# @param manage_firewall Manage the server firewall configuration
+#
+# @example
+# include profile::server
+class profile::server (
+ Boolean $manage_firewall = true,
+) {
+ if $manage_firewall {
+ include 'firewalld'
+
+ firewalld_service { 'puppetmaster':
+ ensure => present,
+ zone => 'public',
+ service => 'puppetmaster',
+ }
+ }
+
+ include 'profile::server::install'
+ include 'profile::server::config'
+ include 'profile::server::service'
+
+ Class['profile::server::install']
+ -> Class['profile::server::config']
+ ~> Class['profile::server::service']
+}
diff --git a/site/profile/manifests/puppetserver/config.pp b/site/profile/manifests/server/config.pp
similarity index 80%
rename from site/profile/manifests/puppetserver/config.pp
rename to site/profile/manifests/server/config.pp
index c9e3bb4..c6ca9ac 100644
--- a/site/profile/manifests/puppetserver/config.pp
+++ b/site/profile/manifests/server/config.pp
@@ -3,8 +3,8 @@
# @param autosign List of certnames or domain name globs
#
# @example
-# include profile::puppetserver::config
-class profile::puppetserver::config (
+# include profile::server::config
+class profile::server::config (
Array[String] $autosign,
) {
file { '/etc/puppetlabs/puppet/autosign.conf':
diff --git a/site/profile/manifests/server/install.pp b/site/profile/manifests/server/install.pp
new file mode 100644
index 0000000..5fa5f20
--- /dev/null
+++ b/site/profile/manifests/server/install.pp
@@ -0,0 +1,15 @@
+# @summary Install server package
+#
+# @param package The name of the package to install
+# @param package_ensure The ensure value for the package
+#
+# @example
+# include profile::server::install
+class profile::server::install (
+ String[1] $package = 'openvox-server',
+ String[1] $package_ensure = 'installed',
+) {
+ package { $package:
+ ensure => $package_ensure,
+ }
+}
diff --git a/site/profile/manifests/server/service.pp b/site/profile/manifests/server/service.pp
new file mode 100644
index 0000000..db23352
--- /dev/null
+++ b/site/profile/manifests/server/service.pp
@@ -0,0 +1,18 @@
+# @summary Configure server service
+#
+# @param service_name The name of the service to manage
+# @param service_ensure The ensure value for the service
+# @param service_enable Whether to enable the service at boot
+#
+# @example
+# include profile::server::service
+class profile::server::service (
+ String[1] $service_name = 'puppetserver',
+ String[1] $service_ensure = 'running',
+ Boolean $service_enable = true,
+) {
+ service { $service_name:
+ ensure => $service_ensure,
+ enable => $service_enable,
+ }
+}
diff --git a/site/profile/spec/classes/puppetdb_spec.rb b/site/profile/spec/classes/db_spec.rb
similarity index 86%
rename from site/profile/spec/classes/puppetdb_spec.rb
rename to site/profile/spec/classes/db_spec.rb
index f7d9ab4..d312de3 100644
--- a/site/profile/spec/classes/puppetdb_spec.rb
+++ b/site/profile/spec/classes/db_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-describe 'profile::puppetdb' do
+describe 'profile::db' do
on_supported_os.each do |os, os_facts|
context "on #{os}" do
let(:facts) { os_facts }
diff --git a/site/profile/spec/classes/puppetserver/config_spec.rb b/site/profile/spec/classes/server/config_spec.rb
similarity index 83%
rename from site/profile/spec/classes/puppetserver/config_spec.rb
rename to site/profile/spec/classes/server/config_spec.rb
index 8ee7ff4..6c5100d 100644
--- a/site/profile/spec/classes/puppetserver/config_spec.rb
+++ b/site/profile/spec/classes/server/config_spec.rb
@@ -1,6 +1,6 @@
require 'spec_helper'
-describe 'profile::puppetserver::config' do
+describe 'profile::server::config' do
on_supported_os.each do |os, os_facts|
context "on #{os}" do
let(:facts) { os_facts }
@@ -15,7 +15,7 @@
it { is_expected.to compile }
- it { is_expected.to contain_class('profile::puppetserver::config') }
+ it { is_expected.to contain_class('profile::server::config') }
it {
is_expected.to contain_file('/etc/puppetlabs/puppet/autosign.conf').with(
diff --git a/site/profile/spec/classes/puppetserver/install_spec.rb b/site/profile/spec/classes/server/install_spec.rb
similarity index 82%
rename from site/profile/spec/classes/puppetserver/install_spec.rb
rename to site/profile/spec/classes/server/install_spec.rb
index fe4ee35..0e712e0 100644
--- a/site/profile/spec/classes/puppetserver/install_spec.rb
+++ b/site/profile/spec/classes/server/install_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-describe 'profile::puppetserver::install' do
+describe 'profile::server::install' do
on_supported_os.each do |os, os_facts|
context "on #{os}" do
let(:facts) { os_facts }
diff --git a/site/profile/spec/classes/puppetserver/service_spec.rb b/site/profile/spec/classes/server/service_spec.rb
similarity index 82%
rename from site/profile/spec/classes/puppetserver/service_spec.rb
rename to site/profile/spec/classes/server/service_spec.rb
index c1cd9fa..c705cf5 100644
--- a/site/profile/spec/classes/puppetserver/service_spec.rb
+++ b/site/profile/spec/classes/server/service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-describe 'profile::puppetserver::service' do
+describe 'profile::server::service' do
on_supported_os.each do |os, os_facts|
context "on #{os}" do
let(:facts) { os_facts }
diff --git a/site/profile/spec/classes/puppetserver_spec.rb b/site/profile/spec/classes/server_spec.rb
similarity index 85%
rename from site/profile/spec/classes/puppetserver_spec.rb
rename to site/profile/spec/classes/server_spec.rb
index 2fab5ed..47075e5 100644
--- a/site/profile/spec/classes/puppetserver_spec.rb
+++ b/site/profile/spec/classes/server_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-describe 'profile::puppetserver' do
+describe 'profile::server' do
on_supported_os.each do |os, os_facts|
context "on #{os}" do
let(:facts) { os_facts }
diff --git a/site/profile/templates/autosign.conf.epp b/site/profile/templates/autosign.conf.epp
index de71f96..28c9b32 100644
--- a/site/profile/templates/autosign.conf.epp
+++ b/site/profile/templates/autosign.conf.epp
@@ -1,3 +1,3 @@
-<% $profile::puppetserver::config::autosign.each |String $s| { -%>
+<% $profile::server::config::autosign.each |String $s| { -%>
<%= $s %>
<% } -%>
diff --git a/site/role/REFERENCE.md b/site/role/REFERENCE.md
index 3784530..f6ce670 100644
--- a/site/role/REFERENCE.md
+++ b/site/role/REFERENCE.md
@@ -7,11 +7,11 @@
### Classes
* [`role::agent`](#role--agent): Agent class
-* [`role::puppetserver`](#role--puppetserver): Puppet server class
+* [`role::server`](#role--server): Puppet server class
### Plans
-* [`role`](#role): Build a Puppet server and attach agents
+* [`role`](#role): Build an OpenVox server and attach agents
## Classes
@@ -27,7 +27,7 @@ Agent class
include role::agent
```
-### `role::puppetserver`
+### `role::server`
Puppet server class
@@ -36,40 +36,67 @@ Puppet server class
#####
```puppet
-include role::puppetserver
+include role::server
```
## Plans
### `role`
-Build a Puppet server and attach agents
+Build an OpenVox server and attach agents
#### Parameters
The following parameters are available in the `role` plan:
-* [`puppet_release`](#-role--puppet_release)
-* [`puppet_version`](#-role--puppet_version)
+* [`openvox_release`](#-role--openvox_release)
+* [`openvox_version`](#-role--openvox_version)
+* [`openvox_collection`](#-role--openvox_collection)
+* [`release_package`](#-role--release_package)
+* [`openvox_agent`](#-role--openvox_agent)
* [`targets`](#-role--targets)
-* [`puppet_target`](#-role--puppet_target)
+* [`server_target`](#-role--server_target)
* [`control_repo`](#-role--control_repo)
* [`choria_user`](#-role--choria_user)
-##### `puppet_release`
+##### `openvox_release`
Data type: `Integer`
-The major version of Puppet to use
+The major version of OpenVox to use
-##### `puppet_version`
+##### `openvox_version`
Data type: `Optional[String]`
-The version of puppet-agent to install
+The version of openvox-agent to install
Default value: `undef`
+##### `openvox_collection`
+
+Data type: `String[1]`
+
+The collection to use for openvox-agent
+
+Default value: `"openvox${openvox_release}"`
+
+##### `release_package`
+
+Data type: `String[1]`
+
+The URL of the openvox-release package
+
+Default value: `"https://yum.voxpupuli.org/${openvox_collection}-release-el-\$( rpm --eval '%{rhel}' ).noarch.rpm"`
+
+##### `openvox_agent`
+
+Data type: `String[1]`
+
+The name of the openvox-agent package
+
+Default value: `'openvox-agent'`
+
##### `targets`
Data type: `TargetSpec`
@@ -78,7 +105,7 @@ The targets to run on
Default value: `'all'`
-##### `puppet_target`
+##### `server_target`
Data type: `TargetSpec`
diff --git a/site/role/lib/facter/role__puppetserver__r10k_remote.rb b/site/role/lib/facter/role__server__r10k_remote.rb
similarity index 88%
rename from site/role/lib/facter/role__puppetserver__r10k_remote.rb
rename to site/role/lib/facter/role__server__r10k_remote.rb
index 94ec327..86b8a0a 100644
--- a/site/role/lib/facter/role__puppetserver__r10k_remote.rb
+++ b/site/role/lib/facter/role__server__r10k_remote.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-Facter.add(:role__puppetserver__r10k_remote) do
+Facter.add(:role__server__r10k_remote) do
r10k_yaml = '/etc/puppetlabs/r10k/r10k.yaml'
confine kernel: 'Linux'
diff --git a/site/role/manifests/puppetserver.pp b/site/role/manifests/server.pp
similarity index 51%
rename from site/role/manifests/puppetserver.pp
rename to site/role/manifests/server.pp
index f768dd3..43bca96 100644
--- a/site/role/manifests/puppetserver.pp
+++ b/site/role/manifests/server.pp
@@ -1,14 +1,14 @@
# @summary Puppet server class
#
# @example
-# include role::puppetserver
-class role::puppetserver {
+# include role::server
+class role::server {
include 'git'
include 'r10k'
- include 'profile::puppetserver'
+ include 'profile::server'
- include 'profile::puppetdb'
+ include 'profile::db'
include 'choria'
include 'choria::broker'
diff --git a/site/role/plans/init.pp b/site/role/plans/init.pp
index 10526c4..f4e8c2f 100644
--- a/site/role/plans/init.pp
+++ b/site/role/plans/init.pp
@@ -1,37 +1,43 @@
-# @summary Build a Puppet server and attach agents
+# @summary Build an OpenVox server and attach agents
#
-# @param puppet_release The major version of Puppet to use
-# @param puppet_version The version of puppet-agent to install
+# @param openvox_release The major version of OpenVox to use
+# @param openvox_version The version of openvox-agent to install
+# @param openvox_collection The collection to use for openvox-agent
+# @param release_package The URL of the openvox-release package
+# @param openvox_agent The name of the openvox-agent package
# @param targets The targets to run on
-# @param puppet_target The puppet server target
+# @param server_target The puppet server target
# @param control_repo URL of the control repo
# @param choria_user User name of the demo choria user on the Puppet server
plan role (
- Integer $puppet_release,
- Optional[String] $puppet_version = undef,
- TargetSpec $targets = 'all',
- TargetSpec $puppet_target = 'puppet',
+ Integer $openvox_release,
+ Optional[String] $openvox_version = undef,
+ String[1] $openvox_collection = "openvox${openvox_release}",
+ String[1] $release_package = "https://yum.voxpupuli.org/${openvox_collection}-release-el-\$( rpm --eval '%{rhel}' ).noarch.rpm",
+ String[1] $openvox_agent = 'openvox-agent',
+ TargetSpec $targets = 'all',
+ TargetSpec $server_target = 'puppet',
Variant[
Stdlib::HTTPUrl,
Pattern[/\Afile:\/\/\/([^\n\/\0]+(\/)?)+\z/]
- ] $control_repo = 'file:///vagrant/',
- Optional[String] $choria_user = 'vagrant',
+ ] $control_repo = 'file:///vagrant/',
+ Optional[String] $choria_user = 'vagrant',
) {
- # We want to specify the Puppet agent version to install,
- # so we start by running the puppet_agent::install task.
- $puppet_collection = "puppet${puppet_release}"
- $agent_install_message = $puppet_version ? {
- /^.+$/ => "Installing puppet-agent ${puppet_version}",
- default => "Installing ${puppet_collection}",
+ # We want to specify the OpenVox agent version to install,
+ # so we start by manually installing the agent package.
+ run_command("dnf -y install ${release_package}", $targets, 'Installing openvox-release package')
+
+ if $openvox_version =~ String[1] {
+ run_command("dnf -y install ${openvox_agent}-${openvox_version}", $targets, "Installing openvox-agent package version ${openvox_version}")
+ } else {
+ run_command("dnf -y install ${openvox_agent}", $targets, 'Installing openvox-agent package')
}
- $agent_version = $puppet_version ? {
- /^.+$/ => { 'version' => $puppet_version },
- default => {},
+
+ get_targets($targets).each |$target| {
+ # Set the puppet-agent feature to true so that
+ # apply_prep() will not attempt to install the agent.
+ set_feature($target, 'puppet-agent', true)
}
- $agent_install_args = {
- 'collection' => $puppet_collection,
- } + $agent_version
- run_task('puppet_agent::install', $targets, $agent_install_message, $agent_install_args)
# apply_prep will see that puppet-agent is already
# installed and collect facts.
@@ -65,28 +71,28 @@
}
}
- # On the puppet server target, configure r10k.
- apply($puppet_target, '_description' => 'Configure r10k') {
+ # On the server target, configure r10k.
+ apply($server_target, '_description' => 'Configure r10k') {
class { 'git': }
-> class { 'r10k':
remote => $control_repo,
}
-> exec { 'r10k deploy environment -pv':
- path => '/opt/puppetlabs/bin:/bin:/usr/bin:/sbin:/usr/sbin',
- creates => '/etc/puppetlabs/code/environments/production/Puppetfile',
+ path => '/opt/puppetlabs/bin:/bin:/usr/bin:/sbin:/usr/sbin',
+ # Always run this command to ensure that the environment is deployed.
}
}
- # On the puppet server target, install and start the puppetserver.
- apply($puppet_target, '_description' => 'Install and start server components') {
- include profile::puppetserver
+ # On the server target, install and start the server service.
+ apply($server_target, '_description' => 'Install and start server components') {
+ include profile::server
}
- # Run the puppet agent to finish.
+ # Run the agent to finish.
run_command(
'puppet agent -t -w 30 || { [ $? -eq 2 ] && true; };',
- $puppet_target,
- 'First Puppet agent run',
+ $server_target,
+ 'First agent run',
'_env_vars' => {
'PATH' => '/opt/puppetlabs/bin:/bin:/usr/bin',
},
@@ -95,7 +101,7 @@
if $choria_user {
# Request a choria cert.
apply(
- $puppet_target,
+ $server_target,
'_description' => 'Request a choria cert',
'_run_as' => $choria_user,
) {
@@ -110,11 +116,11 @@
}
}
- # Run the puppet agent on the remaining targets.
+ # Run the agent on the remaining targets.
run_command(
'puppet agent -t -w 30 || { [ $? -eq 2 ] && true; };',
- get_targets($targets) - get_targets($puppet_target),
- 'First Puppet agent run',
+ get_targets($targets) - get_targets($server_target),
+ 'First agent run',
'_env_vars' => {
'PATH' => '/opt/puppetlabs/bin:/bin:/usr/bin',
},
diff --git a/site/role/spec/classes/puppetserver_spec.rb b/site/role/spec/classes/server_spec.rb
similarity index 63%
rename from site/role/spec/classes/puppetserver_spec.rb
rename to site/role/spec/classes/server_spec.rb
index 55b160f..9146810 100644
--- a/site/role/spec/classes/puppetserver_spec.rb
+++ b/site/role/spec/classes/server_spec.rb
@@ -1,19 +1,19 @@
require 'spec_helper'
-describe 'role::puppetserver' do
+describe 'role::server' do
on_supported_os.each do |os, os_facts|
context "on #{os}" do
let(:facts) do
os_facts.merge(
- 'puppet_environmentpath' => '/etc/puppetlabs/code/environments',
- 'puppet_vardir' => '/opt/puppetlabs/puppet/cache',
- 'role__puppetserver__r10k_remote' => 'file:///example',
+ 'puppet_environmentpath' => '/etc/puppetlabs/code/environments',
+ 'puppet_vardir' => '/opt/puppetlabs/puppet/cache',
+ 'role__server__r10k_remote' => 'file:///example',
)
end
it { is_expected.to compile }
- it { is_expected.to contain_class('role::puppetserver') }
+ it { is_expected.to contain_class('role::server') }
it { is_expected.to contain_class('r10k') }
it { is_expected.to contain_class('puppetdb') }
diff --git a/site/role/spec/unit/facter/role__puppetserver__r10k_remote_spec.rb b/site/role/spec/unit/facter/role__server__r10k_remote_spec.rb
similarity index 90%
rename from site/role/spec/unit/facter/role__puppetserver__r10k_remote_spec.rb
rename to site/role/spec/unit/facter/role__server__r10k_remote_spec.rb
index 3bb6758..18e5418 100644
--- a/site/role/spec/unit/facter/role__puppetserver__r10k_remote_spec.rb
+++ b/site/role/spec/unit/facter/role__server__r10k_remote_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
require 'facter'
-require 'facter/role__puppetserver__r10k_remote'
+require 'facter/role__server__r10k_remote'
RSpec.shared_examples 'r10k' do
context 'with r10k.yaml' do
@@ -27,8 +27,8 @@
end
end
-describe :role__puppetserver__r10k_remote, type: :fact do
- subject(:fact) { Facter.fact(:role__puppetserver__r10k_remote) }
+describe :role__server__r10k_remote, type: :fact do
+ subject(:fact) { Facter.fact(:role__server__r10k_remote) }
let(:r10k_yaml) { '/etc/puppetlabs/r10k/r10k.yaml' }
diff --git a/spec/puppet/sample_spec.rb b/spec/puppet/sample_spec.rb
index a9693df..0b2b33f 100644
--- a/spec/puppet/sample_spec.rb
+++ b/spec/puppet/sample_spec.rb
@@ -2,10 +2,10 @@
require 'spec_helper'
-puppet_version = ENV.fetch('PUPPET_VERSION', '')
-puppet_release = puppet_version.empty? ? ENV.fetch('PUPPET_RELEASE', '8') : puppet_version.split('.').first
+openvox_version = ENV.fetch('OPENVOX_VERSION', '')
+openvox_release = openvox_version.empty? ? ENV.fetch('OPENVOX_RELEASE', '8') : openvox_version.split('.').first
-describe 'puppetserver' do
+describe 'server' do
# Verify the physical setup of the server
describe interface('eth0') do
it { is_expected.to exist }
@@ -71,7 +71,7 @@
end
# Verify the puppet server configuration
- describe package('puppetserver'), if: os[:family] == 'redhat' do
+ describe package('openvox-server'), if: os[:family] == 'redhat' do
it { is_expected.to be_installed }
end
@@ -85,7 +85,7 @@
end
# Verify puppet agent configuration
- describe package('puppet-agent') do
+ describe package('openvox-agent') do
it { is_expected.to be_installed }
end
@@ -95,7 +95,7 @@
end
# Yum configuration
- describe yumrepo("puppet#{puppet_release}") do
+ describe yumrepo("openvox#{openvox_release}") do
it { is_expected.to exist }
it { is_expected.to be_enabled }
end
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index e8aaf08..9342f33 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -3,6 +3,7 @@
require 'serverspec'
require 'net/ssh'
require 'tempfile'
+require 'bundler'
set :backend, :ssh
@@ -20,12 +21,14 @@
host = ENV['TARGET_HOST']
begin
- state = `vagrant status #{host} --machine-readable`
- .lines(chomp: true)
- .map { |line| line.split(',') }
- .select { |v| v[2] == 'state' }
- .each_with_object({}) { |v, memo| memo[v[1]] = [v[2..-1]].to_h }
- if host.nil? || state.any { |_k, v| v['state'] != 'running' } || (state[host]['state'] != 'running')
+ state = Bundler.with_original_env do
+ `vagrant status #{host} --machine-readable`
+ &.lines(chomp: true)
+ &.map { |line| line.split(',') }
+ &.select { |v| v[2] == 'state' }
+ &.each_with_object({}) { |v, memo| memo[v[1]] = [v[2..-1]].to_h }
+ end
+ if host.nil? || state&.any? { |_k, v| v['state'] != 'running' } || (state&.dig(host, 'state') != 'running')
system("vagrant up #{host}")
end
rescue => e
@@ -33,7 +36,9 @@
end
config = Tempfile.new('', Dir.tmpdir)
-config.write(`vagrant ssh-config #{host}`)
+Bundler.with_original_env do
+ config.write(`vagrant ssh-config #{host}`)
+end
config.close
options = Net::SSH::Config.for(host, [config.path])