Install Puppet Master by running
wget --no-check-certificate https://raw.github.com/atomia/puppet-atomia/master/files/install_atomia_puppetmaster.sh && chmod +x install_atomia_puppetmaster.sh
./install_atomia_puppetmaster.sh
If you want to update the Atomia puppet module to the latest supported version simply do
cd /etc/puppet
librarian-puppet update
On the Puppet Master generate new certificates for your environment, replace arguments to generate_certificates.rb to fit your environment
cd /etc/puppet/modules/atomia/files/certificates/
ruby generate_certificates.rb mydomain.com login order billing hcp
Set up your Active Directory domain according to best practices.
Install a database server with Microsoft SQL Server 2008 R2
Download and install the latest version of Puppet with the following Powershell commands. Be sure to replace PUPPET_MASTER_SERVER=puppetmaster with your puppetmasters hostname. This can easily be found by going to the puppetmaster and doing "ls /var/lib/puppet/ssl/certs/".
Dism /online /Enable-Feature /FeatureName:NetFx3 /All
(new-object System.Net.WebClient).Downloadfile("https://downloads.puppetlabs.com/windows/puppet-latest.msi", "puppet.msi")
msiexec /qn /i puppet.msi PUPPET_MASTER_SERVER=puppetmaster
Run puppet agent, you will find it on the start menu under puppet -> run puppet agent.
Approve the certificate on the puppet master
puppet cert list
puppet cert sign <certname>
Run the following script to connect the node to Puppet Master, replace with the hostname of your Puppet Master.
wget --no-check-certificate https://raw.github.com/atomia/puppet-atomia/master/files/bootstrap_linux.sh && chmod +x bootstrap_linux.sh
./bootstrap_linux.sh <puppetmaster>
rm boostrap_linux.sh
You will find example hiera configurations in the examples/hieradata folder in this repository.
A standard deployment will contain at a minimum 3 files
- common.yaml (variables common to all nodes)
- windows.yaml (variables common to all windows nodes)
- Linux.yaml (variables common to all linux nodes)
You should copy these files from the examples/hieradata folder to your Puppet Master ("/etc/puppet/hieradata"). Fill in the files completely before proceeding.
In order to ease editing of the files there is helper scripts available to run to perform some initial tasks
/etc/puppet/modules/atomia/files/certificates/set_cert_fingerprints.sh
On the Puppet Master create a file with the name "/etc/puppet/hieradata/nodes/mydomaincontroller.com.yaml" where mydomaincontroller.com is the certname of your first domain controller. This file should contain the following data:
---
classes:
- atomia::active_directory
Now run puppet agent on the domain controller to configure it to be used with Atomia.
In order to assign a role to a specific node we use facter, there are several ways to add custom facts to facter but the recommended way is to for each node do the following.
mkdir -p /etc/facter/facts.d
echo "atomia_role=daggre" >> /etc/facter/facts.d/atomiarole.txt
Replace "atomia_role" with the role you want this node to have. In order for this to work there needs to be a matching yaml file in /etc/puppet/hieradata. Example files for each role can be found at https://github.com/atomia/puppet-atomia/tree/master/examples/hieradata.
A certain order is recommended when you install:
- Active directory (manual)
- Atomia database server (manual)
- Atomia application servers
- Nagios server
- AtomiaDNS
- The remaining agents/resources can be in any order
The Atomia applications are deployed on Windows and are using only the windows.yaml data file (with some exceptions). After Puppet has finished it's run on the servers you will have the "Atomia Installer" program on the desktop which is used to install the applications you require on the server.
Some Applications require some extra steps, they are listed below.
Automation server
In order to have Puppet deploy resource transformations automatically the server running automation server needs to have the class "atomia::resource_transformations" assigned (no variables need to be passed).