<?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="change-host-password">
    <title>Changing Host Password</title>
    <para>The password for a XenServer Node, KVM Node, or vSphere Node may be changed in the database.  Note that all Nodes in a Cluster must have the same password.</para>
    <para> To change a Node's password:</para>
    <orderedlist>
        <listitem><para>Identify all hosts in the cluster.</para></listitem>
        <listitem><para>Change the password on all hosts in the cluster.  Now the password for the host and the password known to &PRODUCT; will not match.  Operations on the cluster will fail until the two passwords match.</para>
        </listitem>
        <listitem><para>Get the list of host IDs for the host in the cluster where you are changing the password.  You will need to access the database to determine these host IDs.  For each hostname "h" (or vSphere cluster) that you are changing the password for, execute:</para>
        <programlisting>mysql> select id from cloud.host where name like '%h%';</programlisting>   </listitem>
        <listitem><para>This should return a single ID.  Record the set of such IDs for these hosts.</para></listitem>        
        <listitem><para>Update the passwords for the host in the database. In this example, we change the passwords for hosts with IDs 5, 10, and 12 to "password".</para>
        <programlisting>mysql> update cloud.host set password='password' where id=5 or id=10 or id=12;</programlisting></listitem>
      </orderedlist>
    </section>
