diff --git a/src/administrators-guide/src/docbkx/administrators-guide.xml b/src/administrators-guide/src/docbkx/administrators-guide.xml
index 8d00bda..6ef3c33 100644
--- a/src/administrators-guide/src/docbkx/administrators-guide.xml
+++ b/src/administrators-guide/src/docbkx/administrators-guide.xml
@@ -34,7 +34,8 @@
-
+
+
diff --git a/src/administrators-guide/src/docbkx/content/linux-image-bulder.xml b/src/administrators-guide/src/docbkx/content/linux-image-bulder.xml
new file mode 100644
index 0000000..9860405
--- /dev/null
+++ b/src/administrators-guide/src/docbkx/content/linux-image-bulder.xml
@@ -0,0 +1,429 @@
+
+
+
+
+ Linux Image Building
+
+ The way to build Linux image for Murano is not to complex as for Windows(chapter above) .
+
+
+ Install Required Packages
+
+
+ Please check that hardware virtualization is supported and enabled in BIOS.
+
+
+
+ The following packages should be installed on any host which will be used to build Linux Image:
+
+
+
+ ipxe-qemu
+
+
+
+
+ kvm-ipxe
+
+
+
+
+ qemu-kvm
+
+
+
+
+ munin-libvirt-plugins
+
+
+
+
+ python-libvirt
+
+
+
+
+ libvirt-bin
+
+
+
+
+ libvirt0
+
+
+
+
+ munin-libvirt-plugins
+
+
+
+
+ python-libvirt
+
+
+
+
+ virt-goodies
+
+
+
+
+ virt-manager
+
+
+
+
+ virt-top
+
+
+
+
+ virt-what
+
+
+
+
+ virtinst
+
+
+
+
+ python
+
+
+
+
+
+ On Ubuntu you could install them using the command below:
+
+
+># apt-get install ipxe-qemu kvm-ipxe qemu-kvm virt-goodies \
+ virtinst virt-manager libvirt0 libvirt-bin \
+ munin-libvirt-plugins python python-libvirt \
+ python-libxml2 python-minimal python-pycurl \
+ python-pyorbit python-requests python-six \
+ samba samba-common openssh-server virt-top virt-what
+
+
+
+ Build Linux Image
+
+ Create a VM
+
+ This section describes steps required to build an image of Linux Virtual Machine
+ which could be used with Murano. There are two possible ways to create it - from
+ CLI or using GUI tools. We describe both in this section.
+
+
+
+ Run all commands as root.
+
+
+
+ Way 1: Using CLI Tools
+
+
+ This section describes the required step to launch a VM using CLI tools only.
+
+
+
+
+
+ Preallocate disk image
+
+
+># qemu-img create -f qcow2 /var/lib/libvirt/images/cloud-linux.img 10G
+
+
+
+
+ Start the VM
+
+
+># virt-install --connect qemu:///system --hvm --name cloud-linux \
+ --ram 2048 --vcpus 2 --cdrom /PATH_TO_YOUR_LINUX.ISO \
+ --disk path=/var/lib/libvirt/images/cloud-linux.img \
+ ,format=qcow2,bus=virtio,cache=none \
+ --network network=default,model=virtio \
+ --memballoon model=virtio --vnc --os-type=linux \
+ --accelerate --noapic --keymap=en-us --video=cirrus --force
+
+
+
+
+
+ Way 2: Using virt-manager UI
+
+
+ A VM also could be lauched via GUI tools like virt-manager.
+
+
+
+
+ Launch virt-manager from shell
+ as root
+
+
+
+ Set a name for VM and select Local install media
+
+
+
+
+ Add one cdrom and attach your linux ISO image to it
+
+
+
+
+ Select OS type Linux and it's
+ version choose yours
+
+
+
+
+ Set CPU and RAM amount
+
+
+
+
+ Deselect option Enable storage for this
+ virtual machine
+
+
+
+
+ Select option Customize configuration before
+ install
+
+
+
+
+ Add (or create new) HDD image with Disk bus VirtIO and storage format QCOW2
+
+
+
+ Set network device model VirtIO
+
+
+
+ Start installation process and open guest vm screen through
+ Console button
+
+
+
+
+
+
+ Guest VM Linux OS preparation
+
+ Ubuntu 12.04 LTS x86_64
+
+
+># for action in update upgrade dist-upgrade;do apt-get -y $action;done
+># apt-get install -y git unzip make cmake gcc python-dev python-pip openssh-server sudo
+
+
+ CentOS 6.4 x86_64
+
+
+># rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
+># for action in update upgrade;do yum -y $action; done
+># yum install -y git unzip make cmake gcc python-devel python-pip openssh-server openssh-clients sudo
+
+
+ murano-agent installation steps
+
+
+># mkdir -p /opt/git
+># cd /opt/git
+># git clone https://github.com/stackforge/murano-agent.git
+># cd murano-agent/python-agent
+># git checkout release-0.3
+># chmod a+x setup*.sh
+># ./setup.sh install
+or
+># ./setup-centos.sh install
+
+
+ cloud-init installation steps
+
+
+
+ Ubuntu
+
+
+># apt-get install -y cloud-init cloud-initramfs-growroot
+
+
+
+
+ CentOS
+
+
+># yum install -y cloud-init
+
+
+
+ Ubuntu only
+
+
+ ># dpkg-reconfigure cloud-init
+
+
+ Mark EC2 data source support, save and exit or add manualy Ec2 to the datasource_list variable in the /etc/cloud/cloud.cfg.d/90_dfkg.cfg
+
+
+
+
+
+ Minimal cloud-init configuration options
+
+
+># vi /etc/cloud/cloud.cfg:
+ user: ec2-user
+ disable_root: 1
+ preserve_hostname: False
+
+
+
+
+
+ Security setup
+
+
+ Create user and make it able to run commands through sudo without password prompt.
+
+
+
+ Ubuntu
+
+
+># useradd -m -G sudo -s /bin/bash ec2-user
+># passwd ec2-user
+
+
+
+
+ CentOS
+
+
+># useradd -m -G wheel -s /bin/bash ec2-user
+># passwd ec2-user
+
+
+
+
+ Sudo
+
+
+># echo "ec2-user ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/ec2-user
+># chmod 440 /etc/sudoers.d/ec2-user
+
+
+
+
+ Disable SSH password-based logins in the /etc/ssh/sshd_config.
+
+
+...
+GSSAPIAuthentication no
+PasswordAuthentication no
+PermitRootLogin no
+...
+
+
+
+
+
+ Network handling
+
+
+
+ Ubuntu
+
+
+># rm -rf /etc/udev/rules.d/70-persistent-net.rules
+
+
+
+
+ CentOS
+ Remove or comment out HWADDR and UUID in /etc/sysconfig/network-scripts/ifcfg-eth*
+
+
+># rm -rf /etc/udev/rules.d/70-persistent-net.rules
+
+
+
+
+
+ Shutdown VM
+
+
+ Convert the image from RAW to QCOW2 format if you made it as RAW
+
+ The image must be converted from RAW format to QCOW2 before being imorted into Glance.
+
+
+
+
+># qemu-img convert -O qcow2 /var/lib/libvirt/images/cloud-linux.img \
+/var/lib/libvirt/images/cloud-linux.img.qcow2
+
+
+
+
+ Upload Image Into Glance
+
+ Services deployed by Murano require specially prepared images.
+ After images are created they should be registered in Openstack Glance - image operation service.
+
+
+># glance image-create --disk-format=qcow2 --container-format=bare --is-public=true --file=cloud-linux.img --name=cloud-linux
+
+
+ Image should be marked with an appropriate type. That could be done through the Horizon UI.
+ Navigate to Project -> Environments -> Marked Images -> Mark Image and fill up form:
+
+
+
+ Image - cloud-linux
+
+
+
+
+ Title - My Cloud-ready Linux
+
+
+
+
+ Type - Generic Linux
+
+
+
+
+
+
+ After these steps desired image can be chosen in Murano dashboard and used for services platform.
+
+
+
diff --git a/src/administrators-guide/src/docbkx/content/windows-image-bulder.xml b/src/administrators-guide/src/docbkx/content/windows-image-bulder.xml
new file mode 100644
index 0000000..294ac7c
--- /dev/null
+++ b/src/administrators-guide/src/docbkx/content/windows-image-bulder.xml
@@ -0,0 +1,775 @@
+
+
+
+
+ Windows Image Build
+
+ Murano requires a Windows Image in QCOW2 format to be builded and uploaded into Glance.
+
+
+ The easiest way to build Windows image for Murano is to build it on the host where your OpenStack is installed.
+
+
+ Install Required Packages
+
+
+ Please check that hardware virtualization supported and enabled in BIOS.
+
+
+
+ The following packages should be installed on any host which will be used to build Windows Image:
+
+
+
+ ipxe-qemu
+
+
+
+
+ kvm-ipxe
+
+
+
+
+ qemu-kvm
+
+
+
+
+ munin-libvirt-plugins
+
+
+
+
+ python-libvirt
+
+
+
+
+ libvirt-bin
+
+
+
+
+ libvirt0
+
+
+
+
+ munin-libvirt-plugins
+
+
+
+
+ python-libvirt
+
+
+
+
+ virt-goodies
+
+
+
+
+ virt-manager
+
+
+
+
+ virt-top
+
+
+
+
+ virt-what
+
+
+
+
+ virtinst
+
+
+
+
+ python
+
+
+
+
+
+ On Ubuntu you could install them using the command below:
+
+
+># apt-get install ipxe-qemu kvm-ipxe qemu-kvm virt-goodies \
+ virtinst virt-manager libvirt0 libvirt-bin \
+ munin-libvirt-plugins python python-libvirt \
+ python-libxml2 python-minimal python-pycurl \
+ python-pyorbit python-requests python-six \
+ samba samba-common openssh-server virt-top virt-what
+
+
+
+ Configure Shared Resource
+
+ Configure samba based share
+
+
+># mkdir -p /opt/samba/share
+># chown -R nobody:nogroup /opt/samba/share
+
+
+
+
+ Configure samba server (/etc/samba/smb.conf)
+
+
+...
+[global]
+ ...
+ security = user
+...
+[share]
+ comment = Deployment Share
+ path = /opt/samba/share
+ browsable = yes
+ read only = no
+ create mask = 0755
+ guest ok = yes
+ guest account = nobody
+...
+
+
+
+
+ Restart services
+
+
+># service smbd restart
+># service nmbd restart
+
+
+
+
+
+ Prerequisites
+ Download the files below and copy them into their places in your ${SHARE_PATH} folder (we usually use /opt/samba/share as ${SHARE_PATH}):
+
+ Windows 2012 Server ISO evaluation version
+
+ ${SHARE_PATH}/libvirt/images/ws-2012-eval.iso
+
+
+
+
+ http://technet.microsoft.com/en-us/evalcenter/hh670538.aspx
+
+
+
+
+
+
+ VirtIO drivers for Windows
+
+ ${SHARE_PATH}/libvirt/images/virtio-win-0.1-52.iso
+
+
+
+
+ http://alt.fedoraproject.org/pub/alt/virtio-win/stable/virtio-win-0.1-52.iso
+
+
+
+
+
+
+ CloudBase-Init for Windows
+
+ ${SHARE_PATH}/share/files/CloudbaseInitSetup_Beta.msi
+
+
+
+
+ http://www.cloudbase.it/downloads/CloudbaseInitSetup_Beta.msi
+
+
+
+
+
+
+ Far Manager
+
+ ${SHARE_PATH}/share/files/Far30b3367.x64.20130426.msi
+
+
+
+
+ http://www.farmanager.com/files/Far30b3525.x64.20130717.msi
+
+
+
+
+
+
+ Git client
+
+ ${SHARE_PATH}/share/files/Git-1.8.1.2-preview20130201.exe
+
+
+
+
+ https://msysgit.googlecode.com/files/Git-1.8.3-preview20130601.exe
+
+
+
+
+
+
+ Sysinternals Suite
+
+ ${SHARE_PATH}/share/files/SysinternalsSuite.zip
+
+
+
+
+ http://download.sysinternals.com/files/SysinternalsSuite.zip
+
+
+
+
+
+
+ unzip.exe tool
+
+ ${SHARE_PATH}/share/files/unzip.exe
+
+
+
+
+ https://www.dropbox.com/sh/zthldcxnp6r4flm/-k1Om_V6XR
+
+
+
+
+
+
+ PowerShell v3
+
+ ${SHARE_PATH}/share/files/Windows6.1-KB2506143-x64.msu
+
+
+
+
+ http://www.microsoft.com/en-us/download/details.aspx?id=34595
+
+
+
+
+
+
+ .NET 4.0
+
+ ${SHARE_PATH}/share/files/dotNetFx40_Full_x86_x64.exe
+
+
+
+
+ http://www.microsoft.com/en-us/download/details.aspx?id=17718
+
+
+
+
+
+
+ .NET 4.5
+
+ ${SHARE_PATH}/share/files/dotNetFx45_Full_setup.exe
+
+
+
+
+ http://www.microsoft.com/en-us/download/details.aspx?id=30653
+
+
+
+
+
+
+ Murano Agent
+
+ ${SHARE_PATH}/share/files/MuranoAgent.zip
+
+
+
+
+ https://www.dropbox.com/sh/zthldcxnp6r4flm/-k1Om_V6XR
+
+
+
+
+
+
+
+
+ Additional Software
+ This section describes additional software which is required to build an Windows
+ Image.
+
+ Windows ADK
+
+
+ Windows Assessment and Deployment Kit (ADK) for Windows®
+ 8 is required to build your own answer files for auto unattended
+ Windows installation.
+
+
+ You can dowload it from
+ http://www.microsoft.com/en-us/download/details.aspx?id=30652.
+
+
+ PuTTY
+
+ PuTTY is a useful tool to manage your Linux boxes via SSH.
+
+
+ You can download it from
+ http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html.
+
+
+ Windows Server 2012 ISO image
+
+ We use the following Windows installation images:
+
+ Windows Server 2008 R2
+
+ Image Name:
+ 7601.17514.101119-1850_x64fre_server_eval_en-us-GRMSXEVAL_EN_DVD.iso
+
+
+ URL:
+ http://www.microsoft.com/en-us/download/details.aspx?id=11093
+
+
+
+
+
+ Windows Server 2012
+
+ Image Name:
+ 9200.16384.WIN8_RTM.120725-1247_X64FRE_SERVER_EVAL_EN-US-HRM_SSS_X64FREE_EN-US_DV5.iso
+
+
+ URL:
+ http://technet.microsoft.com/en-US/evalcenter/hh670538.aspx?ocid=&wt.mc_id=TEC_108_1_33
+
+
+
+
+
+
+ VirtIO Red Hat drivers ISO image
+
+
+
+ Please, choose stable version instead of latest, We’ve got errors with unstable drivers during guest unattended install.
+
+
+
+ Download drivers from
+ http://alt.fedoraproject.org/pub/alt/virtio-win/stable/
+
+
+ Floppy Image With Unattended File
+
+
+ Run following commands as root:
+
+
+
+
+
+ Create emtpy floppy image in your home folder
+
+
+># dd bs=512 count=2880 \
+ if=/dev/zero of=~/floppy.img \
+ mkfs.msdos ~/floppy.img
+
+
+
+
+ Mount the image to /media/floppy
+
+
+># mkdir /media/floppy mount -o loop \
+ ~/floppy.img /media/floppy
+
+
+
+
+ Download autounattend.xml file from
+ https://raw.github.com/stackforge/murano-deployment/master/image-builder/share/files/ws-2012-std/autounattend.xml
+
+
+
+># cd ~
+># wget https://raw.github.com/stackforge/murano-deployment\
+/master/image-builder/share/files/ws-2012-std/autounattend.xml
+
+
+
+
+ Copy our autounattend.xml to /media/floppy
+
+
+># cp ~/autounattend.xml /media/floppy
+
+
+
+
+ Unmount the image
+
+
+># umount /media/floppy
+
+
+
+
+
+ Build Windows Image (Automatic Way)
+
+
+ Clone murano-deployment repository
+
+># git clone git://github.com/stackforge/murano-deployment.git
+
+
+
+ Change directory to murano-deployment/image-builder folder.
+
+
+ Create folder structure for image builder
+
+># make build-root
+
+
+
+ Create shared resource
+
+ Add to /etc/samba/smb.conf
+
+
+[image-builder-share]
+ comment = Image Builder Share
+ browsable = yes
+ path = /opt/image-builder/share
+ guest ok = yes
+ guest user = nobody
+ read only = no
+ create mask = 0755
+
+
+
+
+ Restart samba services
+
+
+># restart smbd && restart nmbd
+
+
+
+
+
+ Test that all required files are in place
+
+># make test-build-files
+
+
+
+ Get list of available images
+
+># make
+
+
+
+ Run image build process
+
+># make ws-2012-std
+
+
+
+ Wait until process finishes
+
+
+ The image file ws-2012-std.qcow2 should be
+ stored under /opt/image-builder/share/images
+ folder.
+
+
+
+
+ Build Windows Image (Manual Way)
+
+ Please note that the preferred way to build images is to use Automated Build described in the previous chapter.
+
+ Get Post-Install Scripts
+
+ There are a few scripts which perform all the required post-installation tasks.
+
+ Package installation tasks are performed by script named wpi.ps1.
+ Download it from
+ https://raw.github.com/stackforge/murano-deployment/master/image-builder/share/scripts/ws-2012-std/wpi.ps1
+
+
+ There are a few scripts named wpi.ps1, each
+ supports only one version of Windows image. The script above is intended to be
+ used to create Windows Server 2012 Standard. To build other version of Windows
+ please use appropriate script from scripts
+ folder.
+
+ Clean-up actions to finish image preparation are performed by Start-Sysprep.ps1
+ script.
+ Download it from
+ https://raw.github.com/stackforge/murano-deployment/master/image-builder/share/scripts/ws-2012-std/Start-Sysprep.ps1
+
+ These scripts should be copied to the shared resource folder, subfolder Scripts.
+
+ Create a VM
+
+ This section describes steps required to build an image of Windows Virtual Machine
+ which could be used with Murano. There are two possible ways to create it - from
+ CLI or using GUI tools. We describe both in this section.
+
+
+
+ Run all commands as root.
+
+
+
+
+ Way 1: Using CLI Tools
+
+ This section describes the required step to launch a VM using CLI tools only.
+
+
+
+
+
+ Preallocate disk image
+
+
+># qemu-img create -f raw /var/lib/libvirt/images/ws-2012.img 40G
+
+
+
+
+ Start the VM
+
+
+># virt-install --connect qemu:///system --hvm --name WinServ \
+ --ram 2048 --vcpus 2 --cdrom /opt/samba/share/9200.16384.WIN8_RTM\
+.120725-1247_X64FRE_SERVER_EVAL_EN-US-HRM_SSS_X64FREE_EN-US_DV5.ISO \
+ --disk path=/opt/samba/share/virtio-win-0.1-52.iso,device=cdrom \
+ --disk path=/opt/samba/share/floppy.img,device=floppy \
+ --disk path=/var/lib/libvirt/images/ws-2012.qcow2\
+,format=qcow2,bus=virtio,cache=none \
+ --network network=default,model=virtio \
+ --memballoon model=virtio --vnc --os-type=windows \
+ --os-variant=win2k8 --noautoconsole \
+ --accelerate --noapic --keymap=en-us --video=cirrus --force
+
+
+
+
+
+ Way 2: Using virt-manager UI
+
+ A VM also could be lauched via GUI tools like virt-manager.
+
+
+
+
+ Launch virt-manager from shell
+ as root
+
+
+ Set a name for VM and select Local install media
+
+
+ Add one cdrom and attach Windows Server ISO image to it
+
+
+ Select OS type Windows and it's
+ version Windows Server 2008
+
+
+
+ Set CPU and RAM amount
+
+
+ Deselect option Enable storage for this
+ virtual machine
+
+
+
+ Select option Customize configuration before
+ install
+
+
+
+ Add second cdrom for ISO image with virtio drivers
+
+
+ Add a floppy drive and attach our floppy image to it
+
+
+ Add (or create new) HDD image with Disk bus VirtIO and storage format RAW
+
+
+
+ Set network device model VirtIO
+
+
+
+ Start installation process and open guest vm screen through
+ Console button
+
+
+
+
+
+ Convert the image from RAW to QCOW2 format
+ The image must be converted from RAW format to QCOW2 before being imorted into
+ Glance.
+
+
+
+># qemu-img convert -O qcow2 /var/lib/libvirt/images/ws-2012.raw \
+ /var/lib/libvirt/images/ws-2012-ref.qcow2
+
+
+
+
+
+ Upload Image Into Glance
+
+ Services deployed by Murano require specially prepared images, that can be created manually or via automated scripts.
+ Please refer to corresponding chapters of this book to create image. After images are created they should be registered in Openstack Glance - image operation service.
+
+
+
+
+ Use the glance image-create command to import your disk image to Glance:
+
+>$ glance image-create --name <NAME> \
+ --is-public true --disk-format qcow2 \
+ --container-format bare \
+ --file <IMAGE_FILE> \
+ --property <IMAGE_METADATA>
+
+
+
+ Replace the command line arguments to glance image-create with the appropriate values for your environment and disk image:
+
+
+
+
+ Replace <NAME> with the name that users will refer to the disk image by.
+ E.g. 'ws-2012-std'
+
+
+
+
+ Replace <IMAGE_FILE> with the local path to the image file to upload.
+ E.g. 'ws-2012-std.qcow2'.
+
+
+
+ Replace <IMAGE_METADATA> with the
+ following property string
+
+murano_image_info='{"title": "Windows 2012 Standart Edition", "type": "windows.2012"}'
+
+ where
+
+ title - user-friendly description of the image
+
+
+ type - is a image type, for example 'windows.2012'
+
+
+
+
+
+
+
+ To update metadata of the existing image run the command:
+
+>$ glance image-update <IMAGE-ID> --property <IMAGE_MATADATA>
+
+
+
+
+ Replace <IMAGE-ID> with image id from the previous command output.
+
+
+
+ Replace <IMAGE_METADATA> with
+ murano_image_info property, e.g.
+
+murano_image_info='{"title": "Windows 2012 Standart Edition", "type": "windows.2012"}'
+
+
+
+
+
+
+
+ The value of the --property argument named murano_image_info is a JSON
+ string. Only double quotes are valid in JSON, so please type
+ the string exactly as in the example above.
+
+
+ After these steps desired image can be chosen in Murano dashboard and used for services platform.
+
+
+