b55ed05a27
We'd like to be able to control sequencing of how and when puppet runs across our machines. Currently, it's just a set of agents that run kinda whenever they run. At times they hang and we don't know about it. Also, cross-server sequencing is impossible to achieve. Change the operation away from agents running on the machine as daemons, and instead ssh from the master to each machine. Change-Id: I76e41e63c6d0825e8735c484ba4580d545515e43
67 lines
2.3 KiB
Plaintext
67 lines
2.3 KiB
Plaintext
Create Server
|
|
=============
|
|
|
|
Note that these instructions assume you're working from this
|
|
directory on an updated local clone of the repository on the
|
|
puppetmaster, and that your account is a member of the admin, puppet
|
|
and salt groups for access to their respective keys::
|
|
|
|
sudo adduser $(whoami) admin
|
|
sudo adduser $(whoami) puppet
|
|
sudo adduser $(whoami) salt
|
|
|
|
(Remember to log out and back into your shell if you add yourself
|
|
to a group.)
|
|
|
|
To launch a node in the OpenStack CI account (production servers)::
|
|
|
|
. ~root/ci-launch/openstackci-rs-nova.sh
|
|
export FLAVOR="8 GB Performance"
|
|
export FQDN=servername.openstack.org
|
|
sudo puppet cert generate $FQDN
|
|
./launch-node.py $FQDN --flavor "$FLAVOR"
|
|
|
|
To launch a node in the OpenStack Jenkins account (slave nodes)::
|
|
|
|
. ~root/ci-launch/openstackjenkins-rs-nova.sh
|
|
export FQDN=slavename.slave.openstack.org
|
|
nova image-list
|
|
export IMAGE='Ubuntu 12.04 LTS (Precise Pangolin)'
|
|
nova flavor-list
|
|
export FLAVOR="8 GB Performance"
|
|
sudo puppet cert generate $FQDN
|
|
./launch-node.py $FQDN --image "$IMAGE" --flavor "$FLAVOR" --salt
|
|
|
|
The --salt option tells the script to automatically configure and enroll
|
|
the server as a minion on the salt master.
|
|
|
|
If you are launching a replacement server, you may skip the generate
|
|
step and specify the name of an existing puppet cert (as long as the
|
|
private key is on this host).
|
|
|
|
The server name and cert names may be different and the latter can be
|
|
specified with --cert if needed (older Jenkins slave types still use
|
|
shared certs), but launch-node.py will assume they are the same unless
|
|
specified.
|
|
|
|
Manually add the hostname to DNS (the launch script does not do so
|
|
automatically). Note that this example assumes you've already
|
|
exported a relevant FQDN and sourced the appropriate API credentials
|
|
above.
|
|
|
|
When running outside the official OpenStack CI infrastructure, you
|
|
will want to pass --server ci-puppetmaster.example.com otherwise the
|
|
new node wil try to register with ci-puppetmaster.openstack.org - and
|
|
fail hilariously.
|
|
|
|
Add DNS Records
|
|
===============
|
|
|
|
There are no scripts to automatically handle DNS at the moment due to
|
|
a lack of library support for the new Rackspace Cloud DNS (with IPv6).
|
|
However, the launch-node script will print the commands needed to be
|
|
run to configure DNS for a newly launched server. To see the commands
|
|
for an existing server, run:
|
|
|
|
./dns.py $FQDN
|