Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement support for frictionless agent installation #92

Merged
merged 13 commits into from Oct 12, 2015

Conversation

Sharpie
Copy link
Member

@Sharpie Sharpie commented Oct 12, 2015

This PR brings in frictionless agent support along with new guest capabilities to retrieve facts. This functionality will re-enable agent installation for PE 2015.x and sets the stage for future improvements in the pe_bootstrap provisioner.

Basic functionality is implemented, ad there are some remaining TODO items:

  • Specifying agent version doesn't really work at the moment as we need a method of matching PE version numbers to AIO build numbers. So, just leave the version setting undefined when using pe_agent.
  • Need to implement a fallback to pe_bootstrap when provisioning Windows agents.
  • Nice to have: The ability to pass agent install options.
  • Nice to have: An autosigning routine that signs certificates on the master.
  • Nice to have: An autopurge routine that purges agent data from the master when an agent VM is destroyed.

This will be ticketed separately and may ship in later versions.

This commit adds a new guest capability, `pebuild_facts`, which loads facts
from guest VMs. If Facter is installed, it will be used to generate a full list
of facts. If Facter is not installed, a basic set of info is computed about the
`os` and `architecture`, which should be sufficient to drive a PE installation.
This commit switches fact retrieval from using `facter` to `puppet facts`. This
smooths over any differences between Facter versions and allows us to capture
things like the Puppet version number and agent certname in addition to custom
facts.
The `vagrant pe-build facts` command prints facts for fact info for every
running VM, or an optional list of target running VMs.
The new `pe_agent` provisioner performs a [Simplified Agent install][1]
for PE 2015.x and newer.

[1]: http://docs.puppetlabs.com/pe/2015.2/install_agents.html#using-the-puppet-agent-package-installation-script
This patch adds a `master_vm` setting to the configuration of the `pe_agent`
provisioner. If set, this setting will be interpreted as the name of another
Vagrant machine which hosts the PE master. Setting `master_vm` will enable the
following tasks during agent installation:

  - The `hostname` of the master machine will be used as a default for the
    `master` setting of the `pe_agent` provisioner.

  - The `pe_agent` provisioner will be able to ensure the correct `pe_repos`
    are configured on the master before attempting agent installation.
This patch updates the acceptance suite to provision CentOS PE 2015.x masters
with `pe_bootstrap` and Ubuntu 2015.x agents with `pe_agent`. Acceptance setup
is also expanded to include support for both CentOS and Ubuntu agent platforms.

Because of the expanded platform support, other tests are also updated to
reflect the change in Vagrant box names.
Sharpie added a commit that referenced this pull request Oct 12, 2015
Implement support for frictionless agent installation

Closes #91 
Closes #69
@Sharpie Sharpie merged commit 8db26e5 into oscar-stack:master Oct 12, 2015
@Sharpie Sharpie deleted the pe_agent branch October 13, 2015 14:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant