<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.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.
-->
<section id="linux-installation">
  <title>Linux OS Installation</title>
  <para>Use the following steps to begin the Linux OS installation:</para>
  <orderedlist>
    <listitem>
      <para>Download the script file <filename>cloud-set-guest-password</filename>:</para>
      <itemizedlist>
        <listitem>
          <para>Linux: <ulink
              url="http://download.cloud.com/templates/4.2/bindir/cloud-set-guest-password.in"/>
          </para>
        </listitem>
        <listitem>
          <para>Windows: <ulink
              url="http://sourceforge.net/projects/cloudstack/files/Password%20Management%20Scripts/CloudInstanceManager.msi/download"
            />
          </para>
        </listitem>
      </itemizedlist>
    </listitem>
    <listitem>
      <para>Copy this file to <filename>/etc/init.d</filename>.</para>
      <para>On some Linux distributions, copy the file to
        <filename>/etc/rc.d/init.d</filename>.</para>
    </listitem>
    <listitem>
      <para>Run the following command to make the script executable:</para>
      <programlisting>chmod +x /etc/init.d/cloud-set-guest-password</programlisting>
    </listitem>
    <listitem>
      <para>Depending on the Linux distribution, continue with the appropriate step.</para>
      <itemizedlist condition="community">
        <listitem>
          <para>On Fedora, CentOS/RHEL, and Debian, run:</para>
          <programlisting>chkconfig --add cloud-set-guest-password</programlisting>
        </listitem>
        <listitem>
          <para condition="community">On Ubuntu with VMware tools, link the script file to the
              <filename>/etc/network/if-up</filename> and <filename>/etc/network/if-down</filename>
            folders, and run the script:</para>
          <programlisting condition="community">#ln -s /etc/init.d/cloud-set-guest-password /etc/network/if-up/cloud-set-guest-password
#ln -s /etc/init.d/cloud-set-guest-password /etc/network/if-down/cloud-set-guest-password</programlisting>
        </listitem>
        <listitem>
          <para condition="community">If you are using Ubuntu 11.04, create a directory called
              <filename>/var/lib/dhcp3</filename> on your Ubuntu machine.</para>
          <para condition="community">This is to work around a known issue with this version of
            Ubuntu. </para>
          <para condition="community">Run the following command:</para>
          <programlisting>sudo update-rc.d cloud-set-guest-password defaults 98</programlisting>
        </listitem>
        <listitem>
          <para condition="community">On all Ubuntu versions, run:</para>
          <programlisting>sudo update-rc.d cloud-set-guest-password defaults 98</programlisting>
          <para condition="community">To test, run <command>mkpasswd</command> and check whether a
            new password is generated. If the <command>mkpasswd</command> command does not exist,
            run <command>sudo apt-get install whois</command> or <command>sudo apt-get install
              mkpasswd</command>, depending on your Ubuntu version.</para>
        </listitem>
      </itemizedlist>
    </listitem>
  </orderedlist>
</section>
