split templates and close #26
Project: http://git-wip-us.apache.org/repos/asf/cloudstack-docs-admin/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack-docs-admin/commit/36338aa3 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack-docs-admin/tree/36338aa3 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack-docs-admin/diff/36338aa3 Branch: refs/heads/master Commit: 36338aa32f4db7f07a97323e4ecb4f4cc201aa24 Parents: 9d3aae6 Author: Pierre-Luc Dion <pdion...@apache.org> Authored: Sun Mar 8 10:32:39 2015 -0400 Committer: Pierre-Luc Dion <pdion...@apache.org> Committed: Sun Mar 8 10:32:39 2015 -0400 ---------------------------------------------------------------------- source/templates.rst | 786 +--------------------------------------------- 1 file changed, 5 insertions(+), 781 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack-docs-admin/blob/36338aa3/source/templates.rst ---------------------------------------------------------------------- diff --git a/source/templates.rst b/source/templates.rst index eecf823..021e481 100644 --- a/source/templates.rst +++ b/source/templates.rst @@ -281,791 +281,15 @@ End users and Administrators may export templates from the CloudStack. Navigate to the template in the UI and choose the Download function from the Actions menu. +.. include:: templates/_create_linux.rst -Creating a Linux Template -------------------------- +.. include:: templates/_create_windows.rst -Linux templates should be prepared using this documentation in order to -prepare your linux VMs for template deployment. For ease of -documentation, the VM which you are configuring the template on will be -referred to as "Template Master". This guide currently covers legacy -setups which do not take advantage of UserData and cloud-init and -assumes openssh-server is installed during installation. +.. include:: templates/_import_ami.rst -An overview of the procedure is as follow: +.. include:: templates/_convert_hyperv.rst -#. Upload your Linux ISO. - - For more information, see `âAdding an - ISOâ <virtual_machines.html#adding-an-iso>`_. - -#. Create a VM Instance with this ISO. - - For more information, see `âCreating - VMsâ <virtual_machines.html#creating-vms>`_. - -#. Prepare the Linux VM - -#. Create a template from the VM. - - For more information, see `âCreating a Template from an Existing - Virtual Machineâ <#creating-a-template-from-an-existing-virtual-machine>`_. - - -System preparation for Linux -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The following steps will prepare a basic Linux installation for -templating. - -#. **Installation** - - It is good practice to name your VM something generic during - installation, this will ensure components such as LVM do not appear - unique to a machine. It is recommended that the name of "localhost" - is used for installation. - - .. warning:: - For CentOS, it is necessary to take unique identification out of the - interface configuration file, for this edit - /etc/sysconfig/network-scripts/ifcfg-eth0 and change the content to - the following. - - .. code:: bash - - DEVICE=eth0 - TYPE=Ethernet - BOOTPROTO=dhcp - ONBOOT=yes - - The next steps updates the packages on the Template Master. - - - Ubuntu - - .. code:: bash - - sudo -i - apt-get update - apt-get upgrade -y - apt-get install -y acpid ntp - reboot - - - CentOS - - .. code:: bash - - ifup eth0 - yum update -y - reboot - -#. **Password management** - - .. note:: - If preferred, custom users (such as ones created during the Ubuntu - installation) should be removed. First ensure the root user account - is enabled by giving it a password and then login as root to continue. - - .. code:: bash - - sudo passwd root - logout - - As root, remove any custom user accounts created during the - installation process. - - .. code:: bash - - deluser myuser --remove-home - - See :ref:`adding-password-management-to-templates` for - instructions to setup the password management script, this will allow - CloudStack to change your root password from the web interface. - -#. **Hostname Management** - - CentOS configures the hostname by default on boot. Unfortunately - Ubuntu does not have this functionality, for Ubuntu installations use - the following steps. - - - Ubuntu - - The hostname of a Templated VM is set by a custom script in - `/etc/dhcp/dhclient-exit-hooks.d`, this script first checks if the - current hostname is localhost, if true, it will get the host-name, - domain-name and fixed-ip from the DHCP lease file and use those - values to set the hostname and append the `/etc/hosts` file for - local hostname resolution. Once this script, or a user has changed - the hostname from localhost, it will no longer adjust system files - regardless of its new hostname. The script also recreates - openssh-server keys, which should have been deleted before - templating (shown below). Save the following script to - `/etc/dhcp/dhclient-exit-hooks.d/sethostname`, and adjust the - permissions. - - .. code:: bash - - #!/bin/sh - # dhclient change hostname script for Ubuntu - oldhostname=$(hostname -s) - if [ $oldhostname = 'localhost' ] - then - sleep 10 # Wait for configuration to be written to disk - hostname=$(cat /var/lib/dhcp/dhclient.eth0.leases | awk ' /host-name/ { host = $3 } END { printf host } ' | sed 's/[";]//g' ) - fqdn="$hostname.$(cat /var/lib/dhcp/dhclient.eth0.leases | awk ' /domain-name/ { domain = $3 } END { printf domain } ' | sed 's/[";]//g')" - ip=$(cat /var/lib/dhcp/dhclient.eth0.leases | awk ' /fixed-address/ { lease = $2 } END { printf lease } ' | sed 's/[";]//g') - echo "cloudstack-hostname: Hostname _localhost_ detected. Changing hostname and adding hosts." - printf " Hostname: $hostname\n FQDN: $fqdn\n IP: $ip" - # Update /etc/hosts - awk -v i="$ip" -v f="$fqdn" -v h="$hostname" "/^127/{x=1} !/^127/ && x { x=0; print i,f,h; } { print $0; }" /etc/hosts > /etc/hosts.dhcp.tmp - mv /etc/hosts /etc/hosts.dhcp.bak - mv /etc/hosts.dhcp.tmp /etc/hosts - # Rename Host - echo $hostname > /etc/hostname - hostname -b -F /etc/hostname - echo $hostname > /proc/sys/kernel/hostname - # Recreate SSH2 - export DEBIAN_FRONTEND=noninteractive - dpkg-reconfigure openssh-server - fi - ### End of Script ### - - chmod 774 /etc/dhcp/dhclient-exit-hooks.d/sethostname - - .. warning:: - The following steps should be run when you are ready to template - your Template Master. If the Template Master is rebooted during - these steps you will have to run all the steps again. At the end - of this process the Template Master should be shutdown and the - template created in order to create and deploy the final template. - -#. **Remove the udev persistent device rules** - - This step removes information unique to your Template Master such as - network MAC addresses, lease files and CD block devices, the files - are automatically generated on next boot. - - - Ubuntu - - .. code:: bash - - rm -f /etc/udev/rules.d/70* - rm -f /var/lib/dhcp/dhclient.* - - - CentOS - - .. code:: bash - - rm -f /etc/udev/rules.d/70* - rm -f /var/lib/dhclient/* - -#. **Remove SSH Keys** - - This step is to ensure all your Templated VMs do not have the same - SSH keys, which would decrease the security of the machines - dramatically. - - .. code:: bash - - rm -f /etc/ssh/*key* - -#. **Cleaning log files** - - It is good practice to remove old logs from the Template Master. - - .. code:: bash - - cat /dev/null > /var/log/audit/audit.log 2>/dev/null - cat /dev/null > /var/log/wtmp 2>/dev/null - logrotate -f /etc/logrotate.conf 2>/dev/null - rm -f /var/log/*-* /var/log/*.gz 2>/dev/null - -#. **Setting hostname** - - In order for the Ubuntu DHCP script to function and the CentOS - dhclient to set the VM hostname they both require the Template - Master's hostname to be "localhost", run the following commands to - change the hostname. - - .. code:: bash - - hostname localhost - echo "localhost" > /etc/hostname - -#. **Set user password to expire** - - This step forces the user to change the password of the VM after the - template has been deployed. - - .. code:: bash - - passwd --expire root - -#. **Clearing User History** - - The next step clears the bash commands you have just run. - - .. code:: bash - - history -c - unset HISTFILE - -#. **Shutdown the VM** - - Your now ready to shutdown your Template Master and create a - template! - - .. code:: bash - - halt -p - -#. **Create the template!** - - You are now ready to create the template, for more information see - `âCreating a Template from an Existing Virtual - Machineâ <#creating-a-template-from-an-existing-virtual-machine>`_. - -.. note:: - Templated VMs for both Ubuntu and CentOS may require a reboot after - provisioning in order to pickup the hostname. - - -Creating a Windows Template ---------------------------- - -Windows templates must be prepared with Sysprep before they can be -provisioned on multiple machines. Sysprep allows you to create a generic -Windows template and avoid any possible SID conflicts. - -.. note:: - (XenServer) Windows VMs running on XenServer require PV drivers, which - may be provided in the template or added after the VM is created. The - PV drivers are necessary for essential management functions such as - mounting additional volumes and ISO images, live migration, and - graceful shutdown. - -An overview of the procedure is as follows: - -#. Upload your Windows ISO. - - For more information, see `âAdding an - ISOâ <virtual_machines.html#adding-an-iso>`_. - -#. Create a VM Instance with this ISO. - - For more information, see `âCreating - VMsâ <virtual_machines.html#creating-vms>`_. - -#. Follow the steps in Sysprep for Windows Server 2008 R2 (below) or - Sysprep for Windows Server 2003 R2, depending on your version of - Windows Server - -#. The preparation steps are complete. Now you can actually create the - template as described in Creating the Windows Template. - - -System Preparation for Windows Server 2008 R2 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For Windows 2008 R2, you run Windows System Image Manager to create a -custom sysprep response XML file. Windows System Image Manager is -installed as part of the Windows Automated Installation Kit (AIK). -Windows AIK can be downloaded from `Microsoft Download -Center <http://www.microsoft.com/en-us/download/details.aspx?id=9085>`_. - -Use the following steps to run sysprep for Windows 2008 R2: - -.. note:: - The steps outlined here are derived from the excellent guide by - Charity Shelbourne, originally published at `Windows Server 2008 - Sysprep Mini-Setup. - <http://blogs.technet.com/askcore/archive/2008/10/31/automating-the-oobe-process-during-windows-server-2008-sysprep-mini-setup.aspx>`_ - -#. Download and install the Windows AIK - - .. note:: - Windows AIK should not be installed on the Windows 2008 R2 VM you - just created. Windows AIK should not be part of the template you - create. It is only used to create the sysprep answer file. - -#. Copy the install.wim file in the \\sources directory of the Windows - 2008 R2 installation DVD to the hard disk. This is a very large file - and may take a long time to copy. Windows AIK requires the WIM file - to be writable. - -#. Start the Windows System Image Manager, which is part of the Windows - AIK. - -#. In the Windows Image pane, right click the Select a Windows image or - catalog file option to load the install.wim file you just copied. - -#. Select the Windows 2008 R2 Edition. - - You may be prompted with a warning that the catalog file cannot be - opened. Click Yes to create a new catalog file. - -#. In the Answer File pane, right click to create a new answer file. - -#. Generate the answer file from the Windows System Image Manager using - the following steps: - - #. The first page you need to automate is the Language and Country or - Region Selection page. To automate this, expand Components in your - Windows Image pane, right-click and add the - Microsoft-Windows-International-Core setting to Pass 7 oobeSystem. - In your Answer File pane, configure the InputLocale, SystemLocale, - UILanguage, and UserLocale with the appropriate settings for your - language and country or region. Should you have a question about - any of these settings, you can right-click on the specific setting - and select Help. This will open the appropriate CHM help file with - more information, including examples on the setting you are - attempting to configure. - - |sysmanager.png| - - #. You need to automate the Software License Terms Selection page, - otherwise known as the End-User License Agreement (EULA). To do - this, expand the Microsoft-Windows-Shell-Setup component. - High-light the OOBE setting, and add the setting to the Pass 7 - oobeSystem. In Settings, set HideEULAPage true. - - |software-license.png| - - #. Make sure the license key is properly set. If you use MAK key, you - can just enter the MAK key on the Windows 2008 R2 VM. You need not - input the MAK into the Windows System Image Manager. If you use - KMS host for activation you need not enter the Product Key. - Details of Windows Volume Activation can be found at - `http://technet.microsoft.com/en-us/library/bb892849.aspx - <http://technet.microsoft.com/en-us/library/bb892849.aspx>`_ - - #. You need to automate is the Change Administrator Password page. - Expand the Microsoft-Windows-Shell-Setup component (if it is not - still expanded), expand UserAccounts, right-click on - AdministratorPassword, and add the setting to the Pass 7 - oobeSystem configuration pass of your answer file. Under Settings, - specify a password next to Value. - - |change-admin-password.png| - - You may read the AIK documentation and set many more options that - suit your deployment. The steps above are the minimum needed to - make Windows unattended setup work. - -#. Save the answer file as unattend.xml. You can ignore the warning - messages that appear in the validation window. - -#. Copy the unattend.xml file into the c:\\windows\\system32\\sysprep - directory of the Windows 2008 R2 Virtual Machine - -#. Once you place the unattend.xml file in - c:\\windows\\system32\\sysprep directory, you run the sysprep tool as - follows: - - .. code:: bash - - cd c:\Windows\System32\sysprep - sysprep.exe /oobe /generalize /shutdown - - The Windows 2008 R2 VM will automatically shut down after sysprep is - complete. - - -System Preparation for Windows Server 2003 R2 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Earlier versions of Windows have a different sysprep tool. Follow these -steps for Windows Server 2003 R2. - -#. Extract the content of \\support\\tools\\deploy.cab on the Windows - installation CD into a directory called c:\\sysprep on the Windows - 2003 R2 VM. - -#. Run c:\\sysprep\\setupmgr.exe to create the sysprep.inf file. - - #. Select Create New to create a new Answer File. - - #. Enter âSysprep setupâ for the Type of Setup. - - #. Select the appropriate OS version and edition. - - #. On the License Agreement screen, select âYes fully automate the - installationâ. - - #. Provide your name and organization. - - #. Leave display settings at default. - - #. Set the appropriate time zone. - - #. Provide your product key. - - #. Select an appropriate license mode for your deployment - - #. Select âAutomatically generate computer nameâ. - - #. Type a default administrator password. If you enable the password - reset feature, the users will not actually use this password. This - password will be reset by the instance manager after the guest - boots up. - - #. Leave Network Components at âTypical Settingsâ. - - #. Select the âWORKGROUPâ option. - - #. Leave Telephony options at default. - - #. Select appropriate Regional Settings. - - #. Select appropriate language settings. - - #. Do not install printers. - - #. Do not specify âRun Once commandsâ. - - #. You need not specify an identification string. - - #. Save the Answer File as c:\\sysprep\\sysprep.inf. - -#. Run the following command to sysprep the image: - - .. code:: bash - - c:\sysprep\sysprep.exe -reseal -mini -activated - - After this step the machine will automatically shut down - - -Importing Amazon Machine Images -------------------------------- - -The following procedures describe how to import an Amazon Machine Image -(AMI) into CloudStack when using the XenServer hypervisor. - -Assume you have an AMI file and this file is called CentOS\_6.2\_x64. -Assume further that you are working on a CentOS host. If the AMI is a -Fedora image, you need to be working on a Fedora host initially. - -You need to have a XenServer host with a file-based storage repository -(either a local ext3 SR or an NFS SR) to convert to a VHD once the image -file has been customized on the Centos/Fedora host. - -.. note:: - When copying and pasting a command, be sure the command has pasted as - a single line before executing. Some document viewers may introduce - unwanted line breaks in copied text. - -To import an AMI: - -#. Set up loopback on image file: - - .. code:: bash - - # mkdir -p /mnt/loop/centos62 - # mount -o loop CentOS_6.2_x64 /mnt/loop/centos54 - -#. Install the kernel-xen package into the image. This downloads the PV - kernel and ramdisk to the image. - - .. code:: bash - - # yum -c /mnt/loop/centos54/etc/yum.conf --installroot=/mnt/loop/centos62/ -y install kernel-xen - -#. Create a grub entry in /boot/grub/grub.conf. - - .. code:: bash - - # mkdir -p /mnt/loop/centos62/boot/grub - # touch /mnt/loop/centos62/boot/grub/grub.conf - # echo "" > /mnt/loop/centos62/boot/grub/grub.conf - -#. Determine the name of the PV kernel that has been installed into the - image. - - .. code:: bash - - # cd /mnt/loop/centos62 - # ls lib/modules/ - 2.6.16.33-xenU 2.6.16-xenU 2.6.18-164.15.1.el5xen 2.6.18-164.6.1.el5.centos.plus 2.6.18-xenU-ec2-v1.0 2.6.21.7-2.fc8xen 2.6.31-302-ec2 - # ls boot/initrd* - boot/initrd-2.6.18-164.6.1.el5.centos.plus.img boot/initrd-2.6.18-164.15.1.el5xen.img - # ls boot/vmlinuz* - boot/vmlinuz-2.6.18-164.15.1.el5xen boot/vmlinuz-2.6.18-164.6.1.el5.centos.plus boot/vmlinuz-2.6.18-xenU-ec2-v1.0 boot/vmlinuz-2.6.21-2952.fc8xen - - Xen kernels/ramdisk always end with "xen". For the kernel version you - choose, there has to be an entry for that version under lib/modules, - there has to be an initrd and vmlinuz corresponding to that. Above, - the only kernel that satisfies this condition is - 2.6.18-164.15.1.el5xen. - -#. Based on your findings, create an entry in the grub.conf file. Below - is an example entry. - - .. code:: bash - - default=0 - timeout=5 - hiddenmenu - title CentOS (2.6.18-164.15.1.el5xen) - root (hd0,0) - kernel /boot/vmlinuz-2.6.18-164.15.1.el5xen ro root=/dev/xvda - initrd /boot/initrd-2.6.18-164.15.1.el5xen.img - -#. Edit etc/fstab, changing âsda1â to âxvdaâ and changing âsdbâ to - âxvdbâ. - - .. code:: bash - - # cat etc/fstab - /dev/xvda / ext3 defaults 1 1 - /dev/xvdb /mnt ext3 defaults 0 0 - none /dev/pts devpts gid=5,mode=620 0 0 - none /proc proc defaults 0 0 - none /sys sysfs defaults 0 0 - -#. Enable login via the console. The default console device in a - XenServer system is xvc0. Ensure that etc/inittab and etc/securetty - have the following lines respectively: - - .. code:: bash - - # grep xvc0 etc/inittab - co:2345:respawn:/sbin/agetty xvc0 9600 vt100-nav - # grep xvc0 etc/securetty - xvc0 - -#. Ensure the ramdisk supports PV disk and PV network. Customize this - for the kernel version you have determined above. - - .. code:: bash - - # chroot /mnt/loop/centos54 - # cd /boot/ - # mv initrd-2.6.18-164.15.1.el5xen.img initrd-2.6.18-164.15.1.el5xen.img.bak - # mkinitrd -f /boot/initrd-2.6.18-164.15.1.el5xen.img --with=xennet --preload=xenblk --omit-scsi-modules 2.6.18-164.15.1.el5xen - -#. Change the password. - - .. code:: bash - - # passwd - Changing password for user root. - New UNIX password: - Retype new UNIX password: - passwd: all authentication tokens updated successfully. - -#. Exit out of chroot. - - .. code:: bash - - # exit - -#. Check `etc/ssh/sshd_config` for lines allowing ssh login using a - password. - - .. code:: bash - - # egrep "PermitRootLogin|PasswordAuthentication" /mnt/loop/centos54/etc/ssh/sshd_config - PermitRootLogin yes - PasswordAuthentication yes - -#. If you need the template to be enabled to reset passwords from the - CloudStack UI or API, install the password change script into the - image at this point. See :ref:`adding-password-management-to-templates`. - -#. Unmount and delete loopback mount. - - .. code:: bash - - # umount /mnt/loop/centos54 - # losetup -d /dev/loop0 - -#. Copy the image file to your XenServer host's file-based storage - repository. In the example below, the Xenserver is "xenhost". This - XenServer has an NFS repository whose uuid is - a9c5b8c8-536b-a193-a6dc-51af3e5ff799. - - .. code:: bash - - # scp CentOS_6.2_x64 xenhost:/var/run/sr-mount/a9c5b8c8-536b-a193-a6dc-51af3e5ff799/ - -#. Log in to the Xenserver and create a VDI the same size as the image. - - .. code:: bash - - [root@xenhost ~]# cd /var/run/sr-mount/a9c5b8c8-536b-a193-a6dc-51af3e5ff799 - [root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]# ls -lh CentOS_6.2_x64 - -rw-r--r-- 1 root root 10G Mar 16 16:49 CentOS_6.2_x64 - [root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]# xe vdi-create virtual-size=10GiB sr-uuid=a9c5b8c8-536b-a193-a6dc-51af3e5ff799 type=user name-label="Centos 6.2 x86_64" - cad7317c-258b-4ef7-b207-cdf0283a7923 - -#. Import the image file into the VDI. This may take 10â20 minutes. - - .. code:: bash - - [root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]# xe vdi-import filename=CentOS_6.2_x64 uuid=cad7317c-258b-4ef7-b207-cdf0283a7923 - -#. Locate a the VHD file. This is the file with the VDIâs UUID as its - name. Compress it and upload it to your web server. - - .. code:: bash - - [root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]# bzip2 -c cad7317c-258b-4ef7-b207-cdf0283a7923.vhd > CentOS_6.2_x64.vhd.bz2 - [root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]# scp CentOS_6.2_x64.vhd.bz2 webserver:/var/www/html/templates/ - - -Converting a Hyper-V VM to a Template -------------------------------------- - -To convert a Hyper-V VM to a XenServer-compatible CloudStack template, -you will need a standalone XenServer host with an attached NFS VHD SR. -Use whatever XenServer version you are using with CloudStack, but use -XenCenter 5.6 FP1 or SP2 (it is backwards compatible to 5.6). -Additionally, it may help to have an attached NFS ISO SR. - -For Linux VMs, you may need to do some preparation in Hyper-V before -trying to get the VM to work in XenServer. Clone the VM and work on the -clone if you still want to use the VM in Hyper-V. Uninstall Hyper-V -Integration Components and check for any references to device names in -/etc/fstab: - -#. From the linux\_ic/drivers/dist directory, run make uninstall (where - "linux\_ic" is the path to the copied Hyper-V Integration Components - files). - -#. Restore the original initrd from backup in /boot/ (the backup is - named \*.backup0). - -#. Remove the "hdX=noprobe" entries from /boot/grub/menu.lst. - -#. Check /etc/fstab for any partitions mounted by device name. Change - those entries (if any) to mount by LABEL or UUID. You can get that - information with the blkid command. - -The next step is make sure the VM is not running in Hyper-V, then get -the VHD into XenServer. There are two options for doing this. - -Option one: - -#. Import the VHD using XenCenter. In XenCenter, go to Tools>Virtual - Appliance Tools>Disk Image Import. - -#. Choose the VHD, then click Next. - -#. Name the VM, choose the NFS VHD SR under Storage, enable "Run - Operating System Fixups" and choose the NFS ISO SR. - -#. Click Next, then Finish. A VM should be created. - -Option two: - -#. Run XenConvert, under From choose VHD, under To choose XenServer. - Click Next. - -#. Choose the VHD, then click Next. - -#. Input the XenServer host info, then click Next. - -#. Name the VM, then click Next, then Convert. A VM should be created. - -Once you have a VM created from the Hyper-V VHD, prepare it using the -following steps: - -#. Boot the VM, uninstall Hyper-V Integration Services, and reboot. - -#. Install XenServer Tools, then reboot. - -#. Prepare the VM as desired. For example, run sysprep on Windows VMs. - See `âCreating a Windows - Templateâ <#creating-a-windows-template>`_. - -Either option above will create a VM in HVM mode. This is fine for -Windows VMs, but Linux VMs may not perform optimally. Converting a Linux -VM to PV mode will require additional steps and will vary by -distribution. - -#. Shut down the VM and copy the VHD from the NFS storage to a web - server; for example, mount the NFS share on the web server and copy - it, or from the XenServer host use sftp or scp to upload it to the - web server. - -#. In CloudStack, create a new template using the following values: - - - URL. Give the URL for the VHD - - - OS Type. Use the appropriate OS. For PV mode on CentOS, choose - Other PV (32-bit) or Other PV (64-bit). This choice is available - only for XenServer. - - - Hypervisor. XenServer - - - Format. VHD - -The template will be created, and you can create instances from it. - - -.. _adding-password-management-to-templates: - -Adding Password Management to Your Templates --------------------------------------------- - -CloudStack provides an optional password reset feature that allows users -to set a temporary admin or root password as well as reset the existing -admin or root password from the CloudStack UI. - -To enable the Reset Password feature, you will need to download an -additional script to patch your template. When you later upload the -template into CloudStack, you can specify whether reset admin/root -password feature should be enabled for this template. - -The password management feature works always resets the account password -on instance boot. The script does an HTTP call to the virtual router to -retrieve the account password that should be set. As long as the virtual -router is accessible the guest will have access to the account password -that should be used. When the user requests a password reset the -management server generates and sends a new password to the virtual -router for the account. Thus an instance reboot is necessary to effect -any password changes. - -If the script is unable to contact the virtual router during instance -boot it will not set the password but boot will continue normally. - - -Linux OS Installation -~~~~~~~~~~~~~~~~~~~~~ - -Use the following steps to begin the Linux OS installation: - -#. Download the script file cloud-set-guest-password: - - - `http://download.cloud.com/templates/4.2/bindir/cloud-set-guest-password.in - <http://download.cloud.com/templates/4.2/bindir/cloud-set-guest-password.in>`_ - -#. Copy this file to /etc/init.d. - - On some Linux distributions, copy the file to ``/etc/rc.d/init.d``. - -#. Run the following command to make the script executable: - - .. code:: bash - - chmod +x /etc/init.d/cloud-set-guest-password - -#. Depending on the Linux distribution, continue with the appropriate - step. - - On Fedora, CentOS/RHEL, and Debian, run: - - .. code:: bash - - chkconfig --add cloud-set-guest-password - - -Windows OS Installation -~~~~~~~~~~~~~~~~~~~~~~~ - -Download the installer, CloudInstanceManager.msi, from the `Download -page <http://sourceforge.net/projects/cloudstack/files/Password%20Management%20Scripts/CloudInstanceManager.msi/download>`_ -and run the installer in the newly created Windows VM. +.. include:: templates/_password.rst Deleting Templates