<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "Runbook.ent">
%BOOK_ENTITIES;
]>

<!-- Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
 
   http://www.apache.org/licenses/LICENSE-2.0
 
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
-->


<chapter id="chap-Runbook-Environment">
  <title>Environment</title>
  <para>
      Before you begin, you need to prepare the environment before you install CloudStack. 
      We will go over the steps to prepare now.
  </para>
  <section id="sect-Runbook-Environment-operatingsys">
    <title>Operating System</title>
    <para>
      Using the CentOS 6.2 x86_64 minimal install ISO, you'll need to install CentOS
      on your hardware. The defaults will generally be acceptable for this installation.
    </para>
    <para>
      Once this installation is complete, you'll want to connect to your freshly
      installed machine via SSH as the root user. Note that you should not allow root 
      logins in a production environment, so be sure to turn off remote logins once you 
      have finished the installation and configuration.
    </para>
    <section id="sect-Runbook-Environment-operatingsys-network">
      <title>Configuring the network</title>
      <para>
        By default the network will not come up on your hardware and you
        will need to configure it to work in your environment. Since we 
        specified that there will be no DHCP server in this environment
        we will be manually configuring your network interface. We will
        assume, for the purposes of this exercise, that eth0 is the only network
        interface that will be connected and used. 
      </para>
      <para>
        Connecting via the console you should login as root. Check the 
        file <filename>/etc/sysconfig/network-scripts/ifcfg-eth0</filename>,
        it will look like this by default:
        <screen>
DEVICE="eth0"
HWADDR="52:54:00:B9:A6:C0"
NM_CONTROLLED="yes"
ONBOOT="no"
        </screen>
      </para>
      <para>
        Unfortunately, this configuration will not permit you to connect to the network,
        and is also unsuitable for our purposes with CloudStack. We want to 
    configure that file so that it specifies the IP address, netmask, etc., as shown
    in the following example:
      </para>
      <important>
        <title>Hardware Addresses</title>
    <para>You should not use the hardware address (aka MAC address) from our example
        for your configuration. It is network interface specific, so you should keep the 
        address already provided in the HWADDR directive.
        </para>
      </important>
      <screen>
DEVICE=eth0
HWADDR=52:54:00:B9:A6:C0
NM_CONTROLLED=no
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.16.10.2
NETMASK=255.255.255.0
GATEWAY=172.16.10.1
DNS1=8.8.8.8
DNS2=8.8.4.4
      </screen>
      <note>
        <title>IP Addressing</title>
        <para>Throughout this document we are assuming that you will
        have a /24 network for your CloudStack implementation. This can be any
        RFC 1918 network. However, we are assuming that you will match the 
        machine address that we are using. Thus we may use 
        <userinput><replaceable>172.16.10</replaceable>.2</userinput> and because
        you might be using the 192.168.55.0/24 network you would use 
        <userinput><replaceable>192.168.55</replaceable>.2</userinput>
        </para>
      </note>
      <para> Now that we have the configuration files properly set up, we need to run a
      few commands to start up the network</para>
      <screen><prompt># </prompt><userinput><command>chkconfig</command> network on</userinput></screen>
      <screen><prompt># </prompt><userinput><command>service</command> network start</userinput></screen>
    </section>
    <section id="sect-Runbook-Environment-operatingsys-hostname">
      <title>Hostname</title>
      <para>
        Cloudstack requires that the hostname be properly set. If you used the default
        options in the installation, then your hostname is currently set to 
        localhost.localdomain. To test this we will run: </para>
        <screen><prompt># </prompt><userinput>hostname --fqdn</userinput></screen>
        <para>At this point it will likely return:</para>
        <screen>localhost</screen>
        <para>To rectify this situation - we'll set the hostname by editing the
        <filename>/etc/hosts</filename> file so that it follows a similar format to this example:<screen>
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
172.16.10.2 srvr1.cloud.priv
</screen>
        </para>
        <para>After you've modified that file, go ahead and restart the network using:</para>
<screen><prompt># </prompt><userinput><command>service</command> network restart</userinput></screen>
        <para>Now recheck with the <command>hostname --fqdn</command> command and ensure that it returns 
        a FQDN response</para>
    </section>
    <section id="sect-Runbook-Environment-operatingsys-selinux">
      <title>SELinux</title>
      <para>At the moment, for CloudStack to work properly SELinux must be 
      set to permissive. We want to both configure this for future boots and modify it
      in the current running system.
      </para>
      <para>To configure SELinux to be permissive in the running system we need to run 
      the following command:</para>
      <screen><prompt># </prompt><userinput><command>setenforce</command> 0</userinput></screen>
      <para> 
        To ensure that it remains in that state we need to configure the file 
        <filename>/etc/selinux/config</filename> to reflect the permissive state, 
    as shown in this example: </para>
      <screen>

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
      </screen>

    </section>
    <section id="sect-Runbook-Environment-operatingsys-ntp">
      <title>NTP</title>
      <para>NTP configuration is a necessity for keeping all of the clocks in your cloud
      servers in sync. However, NTP is not installed by default. So we'll install and 
      and configure NTP at this stage. Installation is accomplished as follows:
      </para>
      <screen><prompt># </prompt><userinput><command>yum</command> install ntp</userinput></screen>
      <para>The actual default configuration is fine for our purposes, so we merely need to
      enable it and set it to start on boot as follows:</para>
      <screen><prompt># </prompt><userinput><command>chkconfig</command> ntpd on</userinput></screen>
      <screen><prompt># </prompt><userinput><command>service</command> ntpd start</userinput></screen>
    </section>
  </section>
  <section id="sect-Runbook-Environment-nfs">
    <title>NFS</title>
    <para>
      Our configuration is going to use NFS for both primary and secondary
      storage. We are going to go ahead and setup two NFS shares for those 
      purposes. We'll start out by installing
      <application>nfs-utils</application>.
    </para>
    <screen><prompt># </prompt><userinput><command>yum</command> install nfs-utils</userinput></screen>
    <para>
      We now need to configure NFS to serve up two different shares. This is handled comparatively easily
      in the <filename>/etc/exports</filename> file. You should ensure that it has the following content:
    </para>
    <screen>
/secondary *(rw,async,no_root_squash)
/primary   *(rw,async,no_root_squash)
    </screen>
    <para>
      You will note that we specified two directories that don't exist (yet) on the system. 
      We'll go ahead and create those directories and set permissions appropriately on them with the following commands:
    </para>
    <screen>
<prompt># </prompt><userinput><command>mkdir</command> /primary</userinput>
<prompt># </prompt><userinput><command>mkdir</command> /secondary</userinput>
    </screen>
    <para>CentOS 6.x releases use NFSv4 by default. NFSv4 requires that domain setting matches on all clients. 
    In our case, the domain is cloud.priv, so ensure that the domain setting in <filename>/etc/idmapd.conf</filename>
    is uncommented and set as follows:</para>
    <screen>Domain = cloud.priv</screen>
    <para>Now you'll need uncomment the configuration values in the file <filename>/etc/sysconfig/nfs</filename></para>
    <screen>
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020
    </screen>
    <para> Now we need to configure the firewall to permit incoming NFS connections. 
    Edit the file <filename>/etc/sysconfig/iptables</filename>
    </para>
    <screen>
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 32803 -j ACCEPT
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p udp --dport 32769 -j ACCEPT
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 892 -j ACCEPT
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p udp --dport 892 -j ACCEPT
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 875 -j ACCEPT
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p udp --dport 875 -j ACCEPT
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 662 -j ACCEPT
-A INPUT -s 172.16.10.0/24 -m state --state NEW -p udp --dport 662 -j ACCEPT
    </screen>
    <para>Now you can restart the iptables service with the following command:
    </para>
    <screen><prompt># </prompt><userinput><command>service</command> iptables restart</userinput></screen>
    <para>We now need to configure nfs service to start on boot and actually start it on the host by
    executing the following commands:</para>
    <screen>
      <prompt># </prompt><userinput><command>service</command> rpcbind start</userinput>
      <prompt># </prompt><userinput><command>service</command> nfs start</userinput>
      <prompt># </prompt><userinput><command>chkconfig</command> rpcbind on</userinput>
      <prompt># </prompt><userinput><command>chkconfig</command> nfs on</userinput>
    </screen>
  </section>


</chapter>
