Skip to content

Installation process

Stefan Mortensen edited this page Nov 25, 2013 · 35 revisions

The Atomia installation process is largely dependent on Puppet for deployment and configuration, it is recommended that before installation you at least have some basic knowledge about how Puppet works.

Install and configure the Puppet Master

The Puppet master is the central management place where all configuration is made. All servers are connected to the master through Puppet client.

Connect to the Puppet master virtual machine and run the following commands to install the latest version (3+) of Puppet.

wget http://apt.puppetlabs.com/puppetlabs-release-precise.deb
sudo dpkg -i puppetlabs-release-precise.deb
sudo apt-get update
apt-get install puppetmaster 

Clone the installation repository to /opt/atomia_installation and make symlinks to the puppet directory

mkdir /opt/atomia_installation
cd /opt/atomia_installation
apt-get install -y git
git clone https://github.com/atomia/installation.git
cd installation/Puppet
rmdir /etc/puppet/modules
rmdir /etc/puppet/manifests
ln -s `pwd`/modules /etc/puppet/
ln -s `pwd`/manifests /etc/puppet/
cp manifests/variables.default.pp manifests/variables.pp

In order for Puppet to configure the environment it needs some knowledge from you. All variables are saved in the file /etc/puppet/manifests/variables.pp.

First generate a set of random passwords for the environment. There is a script available for this which can be ran with the following command.

cd manifests
ruby generate_passwords
mv variables.pp.new variables.pp

You must now fill in the variables except the certificates related variables.

Generate certificates

Generate atomia certificate used for atomia staff to access the servers:

ssh-keygen -t rsa

Save the private key and add the public key to variables.pp using the following command:

/etc/puppet/manifests/set_atomia_cert

Generate certificates for the environment by running the following command

cd /etc/puppet/modules/atomia_windows_base/files/tools
ruby create_certificates.rb

You will need to add the thumb prints to the variables.pp file, there is a helper script that will do this for you:

/etc/puppet/manifests/set_cert_fingerprint

Connect Windows servers to puppet master

This should be done for all windows servers that you want to be managed by puppet, currently this mean all servers expect mssql databases and IIS cluster nodes which are installed manually.

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/".

(new-object System.Net.WebClient).Downloadfile("https://downloads.puppetlabs.com/windows/puppet-3.3.2.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>

The servers are now ready to be installed

Install Domain controllers

Setup Active Directory manually through the Server Manager by enabling the Domain Controller role.

Install Atomia database servers

Install SQL Server manually with the default settings. In particular full text search needs to be enabled.

Base Installation of all Windows Application Servers

Add apppooluser, PosixGuest and WindowsAdmin to Active directory with passwords as set in variables.pp

apppooluser needs to have the logon as a service right and both WindowsAdmin and apppooluser needs Domain admin privileges

Install Atomia applications

Make sure dns points to the domain controllers.

Have a look in the /etc/puppet/manifests/node_templates for the manifests prefixed with "atomia_" these manifests contain examples for a common setup. For each of the nodes that you are going to deploy perform the following steps.

mkdir /etc/puppet/manifests/nodes
cp /etc/puppet/manifests/node_templates/atomia_identity.pp /etc/puppet/manifests/nodes/
cp /etc/puppet/manifests/node_templates/windows_base.pp /etc/puppet/manifests/nodes/
service puppetmaster restart

Add hostname of identity server as node name. Example:

node 'identity.mydomain.com' inherits 'windows_base' {

}

Run puppet agent on the windows machines, it will restart after first run to join AD after restart run Puppet agent once more and make sure it finish all tasks (if not run it until no red tasks remains). Please note that the first puppet run can take up to 10 minutes.

When puppet is done with the setup you will have an icon for Atomia Installer on the desktop, run it and install the latest version of the applications that you want placed on the node.

A suggested separation is.

  • Actiontrail & Identity
  • Admin panel & Api’s
  • Automation Server
  • HCP, BCP & Order page

This setup can of course be modified to fit your needs, just make sure that the application hostnames resolves to the correct ip address.

You should however install the applications in this order:

  • ActionTrail
  • Identity
  • BillingAPI
  • Automation Server
  • Cloud Hosting Pack
  • Automation Server Client
  • Admin Panel
  • HCP
  • BCP
  • Public Order Page

When done install test data with the file http://git.atomia.com/?p=SkyManager.git;a=blob;f=BootstrapSetup/PrepareBootstrap/Modules/billing.sql;h=d6dff6dc50c98afe6ed6cffd94037b6b0ee419a4;hb=HEAD

Optional step: Set up database mirroring as described at this link

Import certificates

On all servers running Atomia Applications perform the following steps.

  • Start mmc
  • Add SSL snap-in for local computer
  • Remove all Atomia certs from Personal folder
  • Remove Atomia root cert from Trusted root certificate authorities
  • Start powershell and run “Set-ExecutionPolicy RemoteSigned”
  • From PowerShell run c:\install\installcert.ps1 (just press enter when it asks for passwords)
  • In MMC add guicert and stssigning cert to Trusted People, certs are found in c:\install\certificates

Troubleshooting

Application won’t load at all. Try to run one of the folling commands:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
and/or
C:\Windows\Microsoft.NET\Framework64\v3.0\Windows Communication Foundation\servicemodalreg.exe -i

Base installation of Linux servers

Before proceeding make sure that the following steps are completed for all Linux nodes:

  • Valid hostname (should be resolvable)
  • Server should have internet access
  • Server should be able to get packages from Atomia apt server (add FW exception)
  • Server should be able to contact the puppet master (ping)

When all pre-requirements are fulfilled the following commands need to be run on each server to hook it up to the puppet master.

wget --no-check-certificate https://raw.github.com/atomia/installation/master/Files/bootstrap_linux.sh && chmod +x bootstrap_linux.sh
./bootstrap_linux.sh <puppetmaster>
rm boostrap_linux.sh

Deploy Linux servers Atomia DNS Name servers Domainreg Daggre