CrucibleWDS 2.3.3 Next CrucibleWDS Documentation Version: 2.3.3 Revision: 1 License: GPLv3 Changelog Topics that have changed since 2.3.2 are highlighted 0. CrucibleWDS License 1. Introduction To CrucibleWDS 1.1 What Is It 1.2 What It Is Not 1.3 How Does It Work 1.4 System Requirements 1.5 Performance 2. Getting Started 2.1 Decide What OS To Install On 2.1.1 Install On Windows 2.1.2 Install On Ubuntu 2.1.3 Install On FreeNAS 2.1.4 Install On Open Media Vault 2.1.5 Install On CentOS 6 2.1.6 Install On CentOS 7 2.2 Client Boot Method 2.3 Create An Image Definition 2.4 Add A Host 2.5 Upload An Image 2.6 Deploy The Image To Other Hosts 3. Web Interface 3.1 Hosts 3.2 Groups 3.3 Images 3.4 Tasks 3.5 Users 3.6 Admin 4. Additional Help Topics 4.0 Kernel Dependencies 4.1 On Demand Mode 4.2 Prepare An Image For Upload 4.3 Automatic PC Name Changing 4.4 Automatic Domain Joining 4.5 Prepare Host For PXE Booting 4.6 Wake On Lan 4.7 Custom Scripting 4.8 Backup 4.9 Changing The Server IP Address 4.10 Partition And Hard Drive Control 4.11 Arguments 4.12 Modify Initrd 4.13 Create A Custom Kernel 4.14 Storage 4.15 Security Permissions 4.16 CWDS Proxy DHCP 5. Troubleshooting 6. Known Bugs 7. Limitations 8. Forum Guidelines - Please Read, Even If You Don't Use The Forums. Next License Previous Chapter 0. CrucibleWDS License CrucibleWDS 2.3.3 Next Chapter 0. CrucibleWDS License CrucibleWDS is free and open source software, licensed under GPLv3. Use this program at your own risk. The makers of CrucibleWDS are not responsible for any data loss. Do not use this program on any device with irreplaceable data. Do Not Install On An existing Production Server. This program should not be used as a backup solution. It is intended for mass deployments of generic images only. Read this license agreement before continuing. CrucibleWDS A Windows Deployment Solution Copyright (C) 2011 Jon Dolny This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/ GNU GENERAL PUBLIC LICENSE Click Here To View The Entire GPLv3 License Previous TOC TOC Next 1. Introduction To CrucibleWDS Previous Chapter 1. Introduction To CrucibleWDS CrucibleWDS 2.3.3 Next Chapter 1. Introduction To CrucibleWDS 1.1 What Is It 1.2 What It Is Not 1.3 How Does It Work 1.4 System Requirements 1.5 Performance Welcome to the CrucibleWDS Documentation. This guide will attempt to share everything there is to know about CrucibleWDS. Guide Legend Commands with green border are entered exactly as shown Commands with red border need changed to fit your install The terms host and client are used interchangeably in this guide. 1.1. What Is It CrucibleWDS is a free open source solution for computer cloning / imaging. It most closely resembles an alternative for Symantec Ghost Solution Suite™ or Acronis Snap Deploy™. It supports imaging Windows XP, Windows Vista, Windows 7, Windows 8, Linux, OSX, and probably others. CrucibleWDS is not the first of its kind, but what separates it from the rest, is it's simplicity. It is also the only open source imaging solution that can be installed on Windows, Linux, BSD, and FreeNAS. It supports Unicast and Multicast technologies. CrucibleWDS was originally created on the ASP.NET Framework with my preferred language being C#. It was later reworked to be compatible with Mono.net giving it the ability to be installed on virtually any OS. It also heavily relies on some basic shell scripting. CrucibleWDS was created to be used primarily in schools or small businesses. It can be used to image 1000's of computers. It was designed be used with an existing infrastructure. Meaning, a network with managed routers / switches, DHCP server, etc. CrucibleWDS is intended to be installed on a server that is always running to ensure imaging is readily available. 1.2 What It Is Not CrucibleWDS IS NOT a backup solution and should never be used as such. It is only intended to provide imaging capabilities for generic images that do not contain irreplaceable data. CrucibleWDS IS NOT an unattended installation of Windows. CrucibleWDS is a cloning program. It creates an image of an existing machine that can then be deployed to other machines. Yes, it could be thought of as unattended because it is totally automated, but there is a difference. 1.3 How Does It Work CrucibleWDS is a managed solution consisting of two parts. A server side component and a client side component. The server side is installed on Windows, Linux, BSD, or FreeNAS and the UI can be accessed from any web capable device within your network. The client side uses Linux. Since the process is automated, no previous Linux experience is required, although it may be helpful. Imaging is achieved through your network with the use of PXE booting and WOL or you can use the standalone client iso for CD booting or a thumb drive for USB booting. To achieve the best results all of your clients are added to a database, then you simply search for the computer you wish to deploy and start the task. The client will automatically turn on and begin to image. Imaging can be accomplished without ever being present at the physical machine's location. 1.4 System Requirements Server The CrucibleWDS server can be anything from a standard laptop to an Enterprise Server. Both 32 and 64 bit are supported It must be running a compatible OS for CrucibleWDS. These Include: Server 2012 Server 2008 Server 2003 Windows 8 Windows 7 Windows XP Most Linux Distros FreeNAS 9.2, 9.3 Hardware requirements are minimal. CPU and RAM requirements are that of the OS. At least one Gigabit NIC and enough HD space for all your images. Client CrucibleWDS can image clients with the following OS's: Windows 8 / 8.1 Windows 7 Windows Vista Windows XP Most Linux distros. OSX Any client that has the option to PXE boot, USB boot, or CD boot, has a NIC, and is compatible with the Linux kernel is compatible with CrucibleWDS. Web Browser The Web Interface supports the following browsers: IE 9 + Latest Chrome Latest Firefox 1.5 Performance Before we answer what performance you can expect to see, let's examine some hardware limitations. First, your network equipment. If you are using a 100Mb NIC or switch, you theoretical max transfer rate is 12.5MB/sec or 1.2GB/min. If you are using all Gigabit equipment your max rate is 125MB/sec or 12GB/min. Next, your hard drive speed. An average desktop 7200rpm drive transfers at speeds of 50-60 MB/s or around 3GB/min and a laptop drive at 5400rpm's is even lower at 25-40MB/sec or around 2GB/min. Then we have compression factors, uploading an image causes it to be compressed, slowing down the rate. Downloading the image it is decompressed and actually increases the rate. Next we have the transfer mode(unicast or multicast), and finally concurrent imaging tasks. Now lets see how all of this plays out. Lets assume the CrucibleWDS Server is a standard desktop PC with a Gigabit NIC, connected to Gigabit Switch, with a single 7200rpm HD. The client is laptop with a Gigabit NIC connected to the same Gigabit switch, with 5400rpm drive. When we upload the image we know that we are limited to around 2.5GB/min because of the hard drive. But since we are uploading we make take a small hit for compression, maybe around 1.5GB/min. When we download the image over nfs or http the image is downloaded compressed and then decompressed on the client before it is written to the hard drive this may appear to make the transfer faster at a speed of around 3GB/min. If we download the image through a multicast we will not see the speed increase of the decompression. On a multicast the image is decompressed before it is sent, so the amount of data you are transferring is actually larger than if you are doing a unicast. The main goal of this little lesson was to show you will almost always be limited by your client machine's slowest piece of hardware. Not your server. The advantage of a better server( with multiple nics, faster hard drives, raid array) is that you will be able to unicast more clients concurrently before seeing a bottleneck. Also, upload is always slower than download, and multicast is always slower than unicast. A general rule is b/w 1.2GB/min and 2GB/min on 100Mb network. And between 2.5GB/min and 6GB/min on a Gigabit network. Previous 0. License TOC Next 2. Getting Started Previous Chapter 2. Getting Started CrucibleWDS 2.3.3 Next Chapter 2. Getting Started 2.1 Decide What OS To Install On 2.1.1 Install On Windows 2.1.2 Install On Ubuntu 2.1.3 Install On FreeNAS 2.1.4 Install On Open Media Vault 2.1.5 Install On CentOS 6 2.1.6 Install On CentOS 7 2.2 Client Boot Method 2.3 Create An Image Definition 2.4 Add A Host 2.5 Upload An Image 2.6 Deploy The Image To Other Hosts 2.1. Decide What OS To Install On Before installing CrucibleWDS you will need to decide what OS to you want to use for your server. CrucibleWDS operates in the same manner regardless of what you choose. Most testing and development will occur on the latest Windows Server. Which is currently Server 2012. If you have that as an option, that is the route I would take. CrucibleWDS is also available for Linux, BSD and FreeNAS. Unix variants should only be used if you prefer them over Windows. They don't offer any additional features, installation is more difficult and not automated, but you have the advantage of not running on Windows. This is more for advanced users, you will need some previous Linux / BSD experience. The following will try to explain pros and cons of each OS. Windows Installation on Windows has the major benefit of being completely automated. Simply run the installer and you are ready to go. Server 2012 Server 2008 Windows 8 Windows 7 Server 2003 - Should work but no longer being actively tested. Windows XP - Should work but no longer being actively tested. Linux / BSD If licensing is tight or you simply prefer Linux servers over Windows, then installing on Linux will give you the same experience as installing on Windows. Installation is possible on any system that supports Mono.NET. Linux also has the benefit that it seems to handle multicasting slightly better than Windows. FreeNAS FreeNAS is my latest addition of compatible OS's. This is a great option if you already have a FreeNAS server setup. It installs directly on the FreeNAS server as a plugin in a jail. If you don't already have a FreeNAS server setup I would recommend just using the Windows or Linux installation. Previous 1. Introduction To CrucibleWDS TOC Next 2.1.1 Install On Windows Previous Chapter 2. Getting Started CrucibleWDS 2.3.3 Next 2.1.1 Install On Windows 2.1.1.1 Upgrading To CrucibleWDS 2.3.3 2.1.1.2 New Installation Of CrucibleWDS 2.3.3 2.1.1.3 Manual Installation Of CrucibleWDS 2.3.3 2.1.1.4 Uninstalling CrucibleWDS I. Upgrading To CrucibleWDS 2.3.3 IMPORTANT: Images created prior to version 2.3.0 cannot be used in Version 2.3.x You must re-upload the images after the Upgrade. Only CrucibleWDS 2.x.x can be upgraded to 2.3.3. Download the CrucibleWDS 2.3.3 Windows Installer Select the upgrade option when asked. Enjoy! II. New Installation Of CrucibleWDS 2.3.3 Pre-Requisites .NET 4.0 or Greater A DHCP Server (One is also provided for use on isolated networks.) Assign your server a static IP It is recommended not to have any Anti-Virus software as this may cause a performance decrease or block necessary ports Installation Download and run the CrucibleWDS Windows Installer When asked enter your machine's ip address, and create 2 passwords, 1 for a local user account and 1 for the database Enjoy! Post Install Setup On the Windows installation there are no additional changes required in the UI Settings. 1. Open the CrucibleWDS Web Interface http://serverIP/cruciblewds 2. Login using cruciblewds / password Client Boot Method Finally you must decide how you will boot your clients. You can do a network boot with PXE or use a bootable ISO with a CD or USB drive. You can also use both options together. Skip to the Client Boot Method section for more info. Installation Problems If installation fails check the install log located at: c:\cruciblewdstmp\CrucibleWDS_Install.log You can also try installing the software manually using the guide in the next section or check the forums for help III. Manual Installation Some users have requested directions for installing CrucibleWDS manually on Windows. Here it is. This section is only for users that do not want to use the automated installer, or have been unsuccessful using the automated installer. Download the CrucibleWDS 2.3.3 Windows Manual Installation Zip Extract the contents Open a cmd prompt as administrator cd to the cwds folder you extracted Enter all of the following relative to the cwds directory 1. Install PostgreSQL postgresql\postgresql-9.2.6-1.exe --mode unattended --servicename PostgreSQL-WDS -superpassword replaceMeWithAPassword If using a 32 bit OS: "c:\program files\PostgreSQL\9.2\bin\psql.exe" -c "create database cruciblewds" -Upostgres If using a 64 bit OS: "c:\program files (x86)\PostgreSQL\9.2\bin\psql.exe" -c "create database cruciblewds" -Upostgres enter your password when asked If using a 32 bit OS: "c:\program files\PostgreSQL\9.2\bin\psql.exe" -W -Upostgres -d cruciblewds < postgresql\cruciblewds.sql If using a 64 bit OS: "c:\program files (x86)\PostgreSQL\9.2\bin\psql.exe" -W -Upostgres -d cruciblewds < postgresql\cruciblewds.sql enter your password when asked 2. Install IIS and Create Application Server 2012 powershell -command import-module servermanager; add-windowsfeature web-server; add-windowsfeature web-asp-net; add-windowsfeature web-asp-net45; addwindowsfeature web-mgmt-console Server 2008 servermanagercmd -install web-server servermanagercmd -install web-asp-net Windows 8 / 8.1 powershell -command enable-windowsoptionalfeature -online -featurename iiswebserverrole -norestart;enable-windowsoptionalfeature -online -featurename iiswebserver -norestart;enable-windowsoptionalfeature -online -featurename iisisapifilter -norestart;enable-windowsoptionalfeature -online -featurename iisisapiextensions -norestart; enable-windowsoptionalfeature -online -featurename netfx4extended-aspnet45 -norestart; enable-windowsoptionalfeature -online featurename iis-netfxextensibility45 -norestart;enable-windowsoptionalfeature online -featurename iis-aspnet45 -norestart Windows 7 dism /online /enable-feature /featurename:IIS-WebServerRole /featurename:IISWebServer /featurename:IIS-ISAPIFilter /featurename:IIS-ISAPIExtensions /featurename:IIS-NetFxExtensibility /featurename:IIS-ASPNET /norestart All OS'S copy the cruciblewds folder to c:\inetpub\wwwroot\. Your folder structure should look like this c:\inetpub\wwwroot\cruciblewds\ Edit c:\inetpub\wwwroot\cruciblewds\web\web.config and change PGSQLPASS on line 5 to the database password you used when you installed PostgreSQL. icacls c:\inetpub\wwwroot\cruciblewds /T /C /grant "network service":(OI)(CI)F icacls c:\inetpub\wwwroot\cruciblewds /T /C /grant IIS_IUSRS:(OI)(CI)F c:\windows\system32\inetsrv\appcmd add app /site.name:"Default Web Site" /path:/cruciblewds /physicalpath:c:\inetpub\wwwroot\cruciblewds\web If using Server 2008 or Windows 7 c:\windows\microsoft.net\framework\v4.0.30319\aspnet_regiis.exe -i -enable cwds.reg iisreset At this point you should have a working UI. 3. Setup Client Image Access CrucibleWDS can access the image files from the clients via NFS or SMB. The default installer uses NFS for Server 2012 and Server 2008, and uses SMB for Windows 7/8. If you prefer to use SMB for Server versions feel free to skip the NFS installation and use SMB. Server 2012 - NFS powershell -command import-module servermanager; add-windowsfeature fs-nfs-service nfs.reg C:\windows\system32\nfsshare images=C:\inetpub\wwwroot\cruciblewds\images -o anon=yes anonuid=0 anongid=0 ro root C:\windows\system32\nfsshare images_hold=C:\inetpub\wwwroot\cruciblewds\images_hold -o anon=yes anonuid=0 anongid=0 rw root icacls c:\inetpub\wwwroot\cruciblewds\images /T /C /grant Everyone:(OI)(CI)F icacls c:\inetpub\wwwroot\cruciblewds\images_hold /T /C /grant Everyone:(OI)(CI)F lsa.reg net stop NfsService net start NfsService gpupdate /force Server 2008 - NFS servermanagercmd -install fs-nfs-services nfs.reg C:\windows\system32\nfsshare images=C:\inetpub\wwwroot\cruciblewds\images -o anon=yes anonuid=0 anongid=0 ro root C:\windows\system32\nfsshare images_hold=C:\inetpub\wwwroot\cruciblewds\images_hold -o anon=yes anonuid=0 anongid=0 rw root icacls c:\inetpub\wwwroot\cruciblewds\images /T /C /grant Everyone:(OI)(CI)F icacls c:\inetpub\wwwroot\cruciblewds\images_hold /T /C /grant Everyone:(OI)(CI)F lsa.reg net stop NfsService net start NfsService gpupdate /force Windows 7 / 8 - SMB net user cruciblewds replaceMeWithAPassword /add WMIC USERACCOUNT WHERE Name='cruciblewds' SET PasswordExpires=FALSE net share images=C:\inetpub\wwwroot\cruciblewds\images /grant:cruciblewds,FULL icacls C:\inetpub\wwwroot\cruciblewds\images /T /C /grant cruciblewds:(OI)(CI)F 4. Install TFTP Server mklink /J c:\inetpub\wwwroot\cruciblewds\tftpboot\proxy\bios\kernels c:\inetpub\wwwroot\cruciblewds\tftpboot\kernels mklink /J c:\inetpub\wwwroot\cruciblewds\tftpboot\proxy\bios\images c:\inetpub\wwwroot\cruciblewds\tftpboot\images mklink /J c:\inetpub\wwwroot\cruciblewds\tftpboot\proxy\efi32\kernels c:\inetpub\wwwroot\cruciblewds\tftpboot\kernels mklink /J c:\inetpub\wwwroot\cruciblewds\tftpboot\proxy\efi32\images c:\inetpub\wwwroot\cruciblewds\tftpboot\images mklink /J c:\inetpub\wwwroot\cruciblewds\tftpboot\proxy\efi64\kernels c:\inetpub\wwwroot\cruciblewds\tftpboot\kernels mklink /J c:\inetpub\wwwroot\cruciblewds\tftpboot\proxy\efi64\images c:\inetpub\wwwroot\cruciblewds\tftpboot\images c:\inetpub\wwwroot\cruciblewds\tftpd32\tftpd32_svc -install sc config tftpd32_svc start= auto net start tftpd32_svc 5. Create Firewall Exceptions netsh firewall add portopening tcp 1048 mountd netsh firewall add portopening tcp 2049 nfs netsh firewall add portopening tcp 1047 nolockmgr netsh firewall add portopening tcp 6677 passSync netsh firewall add portopening udp 1035 pcnfsd netsh firewall add portopening tcp 111 portmapper netsh firewall add portopening tcp 1039 Status netsh firewall add portopening udp 67 dhcps netsh firewall add portopening udp 68 dhcpd netsh firewall add portopening udp 4011 proxyDHCP netsh firewall add portopening udp 69 tftp netsh firewall add portopening tcp 80 http netsh firewall add portopening tcp 443 https netsh firewall add allowedprogram C:\inetpub\wwwroot\cruciblewds\web\data\apps\udpsender.exe udpsender netsh firewall add allowedprogram C:\inetpub\wwwroot\cruciblewds\web\data\apps\udpreceiver.exe udpreceiver 6. Post Install Setup 1. Open the CrucibleWDS Web Interface http://serverIP/cruciblewds 2. Login using cruciblewds / password 3. Select Admin 4. Change Server IP to your IP 5. Next to Server Key click Generate 6. If you are using Windows 7 /8 or are using SMB on Server 2012 / 2008, change image transfer mode to smb 7. Click Update Settings at the bottom 8. When prompted to create a new boot menu select yes 9. On the next screen Click Create Boot File 7. Reboot - You are done Client Boot Method Finally you must decide how you will boot your clients. You can do a network boot with PXE or use a bootable ISO with a CD or USB drive. You can also use both options together. Skip to the Client Boot Method section for more info. IV. Uninstalling CrucibleWDS There is no automated un-installer for CrucibleWDS. Follow these steps if you want to uninstall CrucibleWDS. 1. Remove PostgreSQL If using a 32 bit OS: "c:\program files\PostgreSQL\9.2\uninstall-postgresql.exe" If using a 64 bit OS: "c:\program files (x86)\PostgreSQL\9.2\uninstall-postgresql.exe" 2. Remove TFTP Server net stop tftpd32_svc c:\inetpub\wwwroot\cruciblewds\tftpd32\tftpd32_svc -remove 3. Remove Extra Services These services may or may not exist depending on your version and what options you are using. You should attempt to remove each one anyway. net stop CrucibleWDSKeepAlive C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /u C:\inetpub\wwwroot\cruciblewds\keepalive\CrucibleWDSKeepAlive.exe net stop cwds_proxydhcp C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /u C:\inetpub\wwwroot\cruciblewds\CWDS_ProxyDhcp\cwds_proxydhcp.exe 4. Remove NFS Server If you are using an OS with an NFS Server it should be removed Server 2012 powershell -command import-module servermanager; remove-windowsfeature fs-nfsservice Server 2008 servermanagercmd -remove fs-nfs-services 5. Remove Web Sever Server 2012 powershell -command import-module servermanager; remove-windowsfeature web-server; remove-windowsfeature web-asp-net; remove-windowsfeature web-asp-net45; removewindowsfeature web-mgmt-console Server 2008 servermanagercmd -remove web-server servermanagercmd -remove web-asp-net Windows 8 / 8.1 powershell -command disable-windowsoptionalfeature -online -featurename iiswebserverrole -norestart;disable-windowsoptionalfeature -online -featurename iiswebserver -norestart;disable-windowsoptionalfeature -online -featurename iisisapifilter -norestart;disable-windowsoptionalfeature -online -featurename iisisapiextensions -norestart; disable-windowsoptionalfeature -online -featurename netfx4extended-aspnet45 -norestart; disable-windowsoptionalfeature -online featurename iis-netfxextensibility45 -norestart;disable-windowsoptionalfeature online -featurename iis-aspnet45 -norestart Windows 7 dism /online /disable-feature /featurename:IIS-WebServerRole /featurename:IISWebServer /featurename:IIS-ISAPIFilter /featurename:IIS-ISAPIExtensions /featurename:IIS-NetFxExtensibility /featurename:IIS-ASPNET /norestart All OS'S Delete C:\inetpub\wwwroot\cruciblewds open regedit and delete HKEY_LOCAL_MACHINE\SOFTWARE\CrucibleWDS 5. Reboot - You are done Previous 1. Getting Started TOC Next 2.1.2 Install On Ubuntu Previous Chapter 2. Getting Started CrucibleWDS 2.3.3 Next 2.1.2 Install On Ubuntu 2.1.2.1 Upgrading To CrucibleWDS 2.3.3 2.1.2.2 New Installation Of CrucibleWDS 2.3.3 Tested versions of Ubuntu include 12.xx - 14.xx I. Upgrading To CrucibleWDS 2.3.3 IMPORTANT: Images created prior to version 2.3.0 cannot be used in Version 2.3.x You must re-upload the images after the Upgrade. Only CrucibleWDS 2.x.x can be upgraded to 2.3.3. cd /tmp service apache2 stop mv /tftpboot /tftpboot.old mv /var/www/cruciblewds /var/www/cruciblewds.old wget "http://sourceforge.net/projects/cruciblewds/files/2.3.3/cruciblewds2.3.3.tar.gz" tar xvzf cruciblewds-2.3.3.tar.gz cp -r cruciblewds /var/www/ cp -r tftpboot / ln -s /tftpboot/images /tftpboot/proxy/bios/images ln -s /tftpboot/kernels /tftpboot/proxy/bios/kernels ln -s /tftpboot/images /tftpboot/proxy/efi32/images ln -s /tftpboot/kernels /tftpboot/proxy/efi32/kernels ln -s /tftpboot/images /tftpboot/proxy/efi64/images ln -s /tftpboot/kernels /tftpboot/proxy/efi64/kernels chown -R www-data:www-data /tftpboot /var/www/cruciblewds chown -R postgres /var/www/cruciblewds/data/dbbackup cp /tftpboot.old/pxelinux.cfg/* /tftpboot/pxelinux.cfg/ If upgrading from 2.3.2: su postgres -c "psql cruciblewds < dbUpgrades/2.3.3.sql" If upgrading from 2.3.1: su postgres -c "psql cruciblewds < dbUpgrades/2.3.3.sql" If upgrading from 2.3.0: su postgres -c "psql cruciblewds < dbUpgrades/2.3.1.sql" su postgres -c "psql cruciblewds < dbUpgrades/2.3.3.sql" If upgrading from anything before 2.3.0: su postgres -c "psql cruciblewds < dbUpgrades/2.3.sql" su postgres -c "psql cruciblewds < dbUpgrades/2.3.1.sql" su postgres -c "psql cruciblewds < dbUpgrades/2.3.3.sql" 1. Change PGSQLPASS to yourdbpass on line 5 of this file /var/www/cruciblewds/web.config service apache2 start II. New Installation Pre-Requisites A DHCP Server Assign you server a static IP Installation Setup CrucibleWDS apt-get update apt-get install mono-devel libapache2-mod-mono apache2 udpcast There is a bug when installing libabpache2-mod-mono on Ubuntu that causes the installation to hang. When you see this: * Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName ... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName [ OK ] simply open another terminal window and issue service apache2 restart The installation will then continue wget "http://sourceforge.net/projects/cruciblewds/files/2.3.3/cruciblewds2.3.3.tar.gz" tar xvzf cruciblewds-2.3.3.tar.gz cp wds.conf /etc/apache2/sites-available/ cp -r cruciblewds /var/www/ cp -r tftpboot / ln -s /tftpboot/images /tftpboot/proxy/bios/images ln -s /tftpboot/kernels /tftpboot/proxy/bios/kernels ln -s /tftpboot/images /tftpboot/proxy/efi32/images ln -s /tftpboot/kernels /tftpboot/proxy/efi32/kernels ln -s /tftpboot/images /tftpboot/proxy/efi64/images ln -s /tftpboot/kernels /tftpboot/proxy/efi64/kernels mkdir /images; mkdir /images_hold; mkdir /var/www/.mono chown -R www-data:www-data /tftpboot /images /images_hold /var/www/cruciblewds /var/www/.mono chmod 1777 /tmp Depending on your version disable the default site a2dissite default Or a2dissite 000-default a2ensite wds.conf cd lz4/programs make lz4 ; make install cd ../../ service apache2 restart Setup Database apt-get install postgresql su postgres -c "psql -c \"CREATE DATABASE cruciblewds;\"" su postgres -c "psql cruciblewds < cruciblewds.sql" su postgres -c "psql -c \"ALTER USER postgres with password 'yourdbpass';\"" 1. Change PGSQLPASS to yourdbpass on line 5 of this file /var/www/cruciblewds/web.config chown -R postgres /var/www/cruciblewds/data/dbbackup service apache2 restart Install NFS Server apt-get install nfs-kernel-server echo "/images /etc/exports echo "/images_hold >> /etc/exports *(ro,sync,no_wdelay,no_root_squash,insecure)" >> service nfs-kernel-server restart *(rw,sync,no_wdelay,no_root_squash,insecure)" Install TFTP Server apt-get install xinetd tftpd-hpa echo "TFTP_USERNAME=\"root\" TFTP_DIRECTORY=\"/tftpboot\" TFTP_ADDRESS=\"0.0.0.0:69\" TFTP_OPTIONS=\"-s\"" > /etc/default/tftpd-hpa echo "service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }" > /etc/xinetd.d/tftp service tftpd-hpa restart service xinetd restart Post Install Setup 1. Open the CrucibleWDS Web Interface http://serverIP/cruciblewds 2. Login using cruciblewds / password 3. Select Admin 4. Change Server IP to your IP 5. Next to Server Key click Generate 6. Click Update Settings at the bottom 7. Still in the Admin screen, select Boot Menu at the top right 8. Select Templates then select default 9. Click Create Boot File Client Boot Method Finally you must decide how you will boot your clients. You can do a network boot with PXE or use a bootable ISO with a CD or USB drive. You can also use both options together. Skip to the Client Boot Method section for more info. Installation Problems There are a lot different versions of Mono used in different distros. It is difficult to say what issues you may come across. Some distros need to modify the permissions of /tmp for Mono to work correctly. You could either give ownership of apache2 to /tmp or give it more permissions. When starting apache if you see a permission denied error, this is typically the reason. If installation fails, browse or post something in the forums Previous 2.1.1 Install On Windows TOC Next 2.1.3 Install On FreeNAS Previous Chapter 2. Getting Started CrucibleWDS 2.3.3 Next 2.1.3 Install On FreeNAS 2.1.3.1 Upgrading To CrucibleWDS 2.3.3 2.1.3.2 New Installation Of CrucibleWDS 2.3.3 I will only be creating a pbi / plugin for major releases of CrucibleWDS. Version 2.3.3 is a minor release. If this is a new installation you must follow the documentation below for a new install of 2.3.0, then you can follow the upgrade guide to update to 2.3.3. This guide will show you how to install CrucibleWDS on FreeNAS 9.2.1.6. Only 64bit is supported. Some settings may be slightly different on other versions of FreeNAS. This guide also assumes you have a basic understanding of FreeNAS, plugins, jails and BSD. Guide Legend Commands with green border are entered exactly as shown Commands with red border need changed to fit your install I. Upgrading To CrucibleWDS 2.3.3 IMPORTANT: Images created prior to version 2.3.0 cannot be used in Version 2.3.x You must re-upload the images after the Upgrade. Only CrucibleWDS 2.x.x can be upgraded to 2.3.3. The following commands are entered in the CrucibleWDS Jail Shell cd /usr/pbi/cruciblewds-amd64 service apache22 stop mv tftpboot tftpboot.old mv www/cruciblewds www/cruciblewds.old mkdir cwds2.3.3 cd cwds2.3.3 wget "http://sourceforge.net/projects/cruciblewds/files/2.3.3/cruciblewds2.3.3.tar.gz" tar xvzf cruciblewds-2.3.3.tar.gz cp -r cruciblewds ../www/ cp -r tftpboot ../ ln -s /usr/pbi/cruciblewds-amd64/tftpboot/images /usr/pbi/cruciblewdsamd64/tftpboot/proxy/bios/images ln -s /usr/pbi/cruciblewds-amd64/tftpboot/kernels /usr/pbi/cruciblewdsamd64/tftpboot/proxy/bios/kernels ln -s /usr/pbi/cruciblewds-amd64/tftpboot/images /usr/pbi/cruciblewdsamd64/tftpboot/proxy/efi32/images ln -s /usr/pbi/cruciblewds-amd64/tftpboot/kernels /usr/pbi/cruciblewdsamd64/tftpboot/proxy/efi32/kernels ln -s /usr/pbi/cruciblewds-amd64/tftpboot/images /usr/pbi/cruciblewdsamd64/tftpboot/proxy/efi64/images ln -s /usr/pbi/cruciblewds-amd64/tftpboot/kernels /usr/pbi/cruciblewdsamd64/tftpboot/proxy/efi64/kernels cp ../tftpboot.old/pxelinux.cfg/* ../tftpboot/pxelinux.cfg/ chown -R www:www ../tftpboot chown -R www:www ../www/cruciblewds If upgrading from 2.3.2: psql -Upgsql cruciblewds < dbUpgrades/2.3.3.sql If upgrading from 2.3.1: psql -Upgsql cruciblewds < dbUpgrades/2.3.3.sql If upgrading from 2.3.0: psql -Upgsql cruciblewds < dbUpgrades/2.3.1.sql psql -Upgsql cruciblewds < dbUpgrades/2.3.3.sql If upgrading from anything before 2.3.0: psql -Upgsql cruciblewds < dbUpgrades/2.3.sql psql -Upgsql cruciblewds < dbUpgrades/2.3.1.sql psql -Upgsql cruciblewds < dbUpgrades/2.3.3.sql service apache22 start II. New Installation - CrucibleWDS 2.3.0 Setup CrucibleWDS 1. Login to your FreeNAS Server 2. Select the Plugins option from the top menu 3. Install The CrucibleWDS 2.3.0 Plugin from the FreeNAS Repository 4. Still in Plugins select the Installed tab and enable CrucibleWDS - Some users are reporting that apache is not being enabled after install. I believe it is because this step is being skipped. Setup Database 1. Select the Jails option from the top menu 2. Click on the cruciblewds jail 3. Click on Edit Jail 4. Change the Sysctls box to: (Ensure there are no spaces) allow.raw_sockets=true,allow.sysvipc=1 5. Save your changes 6. Select the jail and click Stop 7. Select the jail and click Start 8. Select the jail and click Shell (Not the FreeNAS shell) cd /usr/pbi/cruciblewds-amd64 ./dbsetup.sh 9. New for version 2.3.3 make the following symlinks while you are in the CrucibleWDS jail shell ln -s /usr/pbi/cruciblewds-amd64/tftpboot/images /usr/pbi/cruciblewdsamd64/tftpboot/proxy/bios/images ln -s /usr/pbi/cruciblewds-amd64/tftpboot/kernels /usr/pbi/cruciblewdsamd64/tftpboot/proxy/bios/kernels ln -s /usr/pbi/cruciblewds-amd64/tftpboot/images /usr/pbi/cruciblewdsamd64/tftpboot/proxy/efi32/images ln -s /usr/pbi/cruciblewds-amd64/tftpboot/kernels /usr/pbi/cruciblewdsamd64/tftpboot/proxy/efi32/kernels ln -s /usr/pbi/cruciblewds-amd64/tftpboot/images /usr/pbi/cruciblewdsamd64/tftpboot/proxy/efi64/images ln -s /usr/pbi/cruciblewds-amd64/tftpboot/kernels /usr/pbi/cruciblewdsamd64/tftpboot/proxy/efi64/kernels exit Setup NFS Server and Storage This example uses the following settings A ZFS volume named storage A ZFS Dataset named wds Make changes as necessary 1. Create a new ZFS Dataset named wds on the storage volume. Ensure compression and dedup are disabled, Also ensure it has enough space to hold your images. 2. Open the FreeNAS Shell on the left cd /mnt/storage/wds mkdir images mkdir images/store mkdir images/hold exit 3. Go back to Storage and select the wds dataset 4. Select Change Permissions 5. Change Owner (user): to www 6. Change Owner (group): to www 7. Check Set permission recursively 8. Click Change 9. Select Sharing from the left menu and select Add Unix (NFS) Share 10. Change Mapall User and Mapall Group to www 11. Change Path to: /mnt/storage/wds/images/hold 12. Click Add extra Path 13. Change the Extra Path to: /mnt/storage/wds/images/store 14. Don't forget to enable the NFS Service 15. Select the Jails option at the top menu 16. Select your cruciblewds jail and select Add Storage 17. For the Source enter: /mnt/storage/wds/images 18. For the Destination enter: /usr/pbi/cruciblewds-amd64/images 19. Click OK Setup TFTP Server This example uses the following settings Jails located at /mnt/jails Make changes as necessary 1. Select Services from the left menu and select TFTP 2. Change Directory to: /mnt/jails/cruciblewds_1/usr/pbi/cruciblewds-amd64/tftpboot 3. Click OK 4. Don't forget to enable the TFTP Service Post Install Setup This example uses the following settings Jail IP Address: 192.168.56.101 FreeNAS IP Address: 192.168.56.50 Make changes as necessary 1. Open the CrucibleWDS Web Interface http://192.168.56.101/cruciblewds 2. Login using cruciblewds / password 3. Select Admin 4. Change Server IP to your jail ip address 192.168.56.101 5. Change Image Store Path to /usr/pbi/cruciblewds-amd64/images/store/ 6. Change Image Hold Path to /usr/pbi/cruciblewds-amd64/images/hold/ 7. Change TFTP Path to /usr/pbi/cruciblewds-amd64/tftpboot/ 8. Next to Server Key click Generate 9. Change NFS Upload Path to (Using FreeNAS ip address) 192.168.56.50:/mnt/storage/wds/images/hold/ 10. Change NFS Deploy Path to (Using FreeNAS ip address) 192.168.56.50:/mnt/storage/wds/images/store/ 11. Change Sender Arguments blocksize to 1456 12. Change Sender Arguments interface to your jail ip address 192.168.56.101 13. Click Update Settings 14. Still in the Admin screen, select Boot Menu at the top right 15. Select Templates then select default 16. Click Create Boot File Client Boot Method IMPORTANT: When setting up your dhcp server for PXE booting, you need to point to your FreeNAS Server, NOT your CrucibleWDS jail ip. Finally you must decide how you will boot your clients. You can do a network boot with PXE or use a bootable ISO with a CD or USB drive. You can also use both options together. Skip to the Client Boot Method section for more info. Installation Problems If installation fails, browse or post something in the forums Previous 2.1.2 Install On Ubuntu TOC Next 2.1.4 Install On Open Media Vault Previous Chapter 2. Getting Started CrucibleWDS 2.3.3 Next 2.1.4 Install On Open Media Vault 2.1.4.1 Upgrading To CrucibleWDS 2.3.3 2.1.4.2 New Installation Of CrucibleWDS 2.3.3 This guide will walk you through installing CrucibleWDS on Open Media Vault. This is considered experimental at this point and is highly recommended to evaluate on a test system first. Very limited testing has been done. All tests up to this point have been done on OMV 1.9. Guide Legend Commands with green border are entered exactly as shown Commands with red border need changed to fit your install I. Upgrading To CrucibleWDS 2.3.3 IMPORTANT: Images created prior to version 2.3.0 cannot be used in Version 2.3.x You must re-upload the images after the Upgrade. Only CrucibleWDS 2.x.x can be upgraded to 2.3.3. cd /tmp service nginx stop service cwds stop mv /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/tftpboot /media/f7ba9f57-81b1-47dc980c-94b9eb2e9823/tftpboot.old mv /var/www/cruciblewds /var/www/cruciblewds.old wget "http://sourceforge.net/projects/cruciblewds/files/2.3.3/cruciblewds2.3.3.tar.gz" tar xvzf cruciblewds-2.3.3.tar.gz cp -r cruciblewds /var/www/ cp -r tftpboot /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/ ln -s /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/tftpboot/images /media/f7ba9f5781b1-47dc-980c-94b9eb2e9823/tftpboot/proxy/bios/images ln -s /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/tftpboot/kernels /media/f7ba9f5781b1-47dc-980c-94b9eb2e9823/tftpboot/proxy/bios/kernels ln -s /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/tftpboot/images /media/f7ba9f5781b1-47dc-980c-94b9eb2e9823/tftpboot/proxy/efi32/images ln -s /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/tftpboot/kernels /media/f7ba9f5781b1-47dc-980c-94b9eb2e9823/tftpboot/proxy/efi32/kernels ln -s /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/tftpboot/images /media/f7ba9f5781b1-47dc-980c-94b9eb2e9823/tftpboot/proxy/efi64/images ln -s /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/tftpboot/kernels /media/f7ba9f5781b1-47dc-980c-94b9eb2e9823/tftpboot/proxy/efi64/kernels chown -R www-data:www-data /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/tftpboot /var/www/cruciblewds chown -R postgres /var/www/cruciblewds/data/dbbackup cp /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/tftpboot.old/pxelinux.cfg/* /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/tftpboot/pxelinux.cfg/ If upgrading from 2.3.2: su postgres -c "psql cruciblewds < dbUpgrades/2.3.3.sql" 1. Change PGSQLPASS to yourdbpass on line 5 of this file /var/www/cruciblewds/web.config service nginx start service cwds start II. New Installation Pre-Requisites A DHCP Server Installation Setup CrucibleWDS CrucibleWDS will be installed on the OMV System partition. You will also need a separate volume to store your images and tftp files. On this volume create a folder called images and two subfolders - hold and store. Your folder structure should look something like this: /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/images /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/images/store /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/images/hold apt-get update apt-get install mono-devel mono-fastcgi-server4 udpcast make gcc build-essential wget "http://sourceforge.net/projects/cruciblewds/files/2.3.3/cruciblewds2.3.3.tar.gz" tar xvzf cruciblewds-2.3.3.tar.gz cp -r cruciblewds /var/www/ cp -r tftpboot /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/ ln -s /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/tftpboot/images /media/f7ba9f5781b1-47dc-980c-94b9eb2e9823/tftpboot/proxy/bios/images ln -s /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/tftpboot/kernels /media/f7ba9f5781b1-47dc-980c-94b9eb2e9823/tftpboot/proxy/bios/kernels ln -s /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/tftpboot/images /media/f7ba9f5781b1-47dc-980c-94b9eb2e9823/tftpboot/proxy/efi32/images ln -s /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/tftpboot/kernels /media/f7ba9f5781b1-47dc-980c-94b9eb2e9823/tftpboot/proxy/efi32/kernels ln -s /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/tftpboot/images /media/f7ba9f5781b1-47dc-980c-94b9eb2e9823/tftpboot/proxy/efi64/images ln -s /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/tftpboot/kernels /media/f7ba9f5781b1-47dc-980c-94b9eb2e9823/tftpboot/proxy/efi64/kernels chown -R www-data:www-data /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/tftpboot chown -R www-data:www-data /var/www/cruciblewds chown -R www-data:www-data /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/images wget "http://docs.cruciblewds.org/omv/cwds" wget "http://docs.cruciblewds.org/omv/cwds.conf" cp cwds.conf /etc/nginx/openmediavault-webgui.d/ cp cwds /etc/init.d/ chmod +x /etc/init.d/cwds echo "fastcgi_param PATH_INFO echo "fastcgi_param SCRIPT_FILENAME /etc/nginx/fastcgi_params \"\";" >> /etc/nginx/fastcgi_params \$document_root\$fastcgi_script_name;" >> service nginx restart service cwds start update-rc.d cwds defaults cd lz4/programs make lz4 ; make install cd ../../ Setup Database apt-get install postgresql su postgres -c "psql -c \"CREATE DATABASE cruciblewds;\"" su postgres -c "psql cruciblewds < cruciblewds.sql" su postgres -c "psql -c \"ALTER USER postgres with password 'yourdbpass';\"" 1. Change PGSQLPASS to yourdbpass on line 5 of this file /var/www/cruciblewds/web.config chown -R postgres /var/www/cruciblewds/data/dbbackup Post Install Setup 1. Open the OMV Web Inteface 2. Create 2 nfs shares: ( You could also use SMB shares ) The first one should be named images Set the volume and path to your images/store folder Set the permission to everyone r/w Set the client to * Set the Privelege to read only Set the extra options to sync,no_wdelay,no_root_squash,insecure The second one should be named images_hold Set the volume and path to your images/hold folder Set the permission to everyone r/w Set the client to * Set the Privelege to read write Set the extra options to sync,no_wdelay,no_root_squash,insecure 3. If you plan on PXE booting, setup the tftp service using the tftpboot shared folder Open the CrucibleWDS Web Interface http://serverIP/cruciblewds Login using cruciblewds / password Select Admin Change Server IP to your IP Change Image Store Path to /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/images/store/ Change Image Hold Path to /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/images/hold/ Change Tftp Path to /media/f7ba9f57-81b1-47dc-980c-94b9eb2e9823/tftpboot Next to Server Key click Generate Change Nfs Upload Path to [server-ip]:/export/images_hold/ Change Nfs Deploy Path to [server-ip]:/export/images/ Click Update Settings at the bottom Still in the Admin screen, select Boot Menu at the top right Select Templates then select default Click Create Boot File Client Boot Method Finally you must decide how you will boot your clients. You can do a network boot with PXE or use a bootable ISO with a CD or USB drive. You can also use both options together. Skip to the Client Boot Method section for more info. Installation Problems There are a lot different versions of Mono used in different distros. It is difficult to say what issues you may come across. Some distros need to modify the permissions of /tmp for Mono to work correctly. If installation fails, browse or post something in the forums Previous 2.1.3 Install On FreeNAS TOC Next 2.1.5 Install On CentOS 6 Previous Chapter 2. Getting Started CrucibleWDS 2.3.3 Next 2.1.5 Install On CentOS 6 (x86_64 only) 2.1.5.1 Upgrading To CrucibleWDS 2.3.3 2.1.5.2 New Installation Of CrucibleWDS 2.3.3 I. Upgrading To CrucibleWDS 2.3.3 IMPORTANT: Images created prior to version 2.3.0 cannot be used in Version 2.3.x You must re-upload the images after the Upgrade. Only CrucibleWDS 2.x.x can be upgraded to 2.3.3. cd /tmp service httpd stop mv /tftpboot /tftpboot.old mv /var/www/html/cruciblewds /var/www/html/cruciblewds.old wget "http://sourceforge.net/projects/cruciblewds/files/2.3.3/cruciblewds2.3.3.tar.gz" tar xvzf cruciblewds-2.3.3.tar.gz cp -r cruciblewds /var/www/html/ cp -r tftpboot / ln -s /tftpboot/images /tftpboot/proxy/bios/images ln -s /tftpboot/kernels /tftpboot/proxy/bios/kernels ln -s /tftpboot/images /tftpboot/proxy/efi32/images ln -s /tftpboot/kernels /tftpboot/proxy/efi32/kernels ln -s /tftpboot/images /tftpboot/proxy/efi64/images ln -s /tftpboot/kernels /tftpboot/proxy/efi64/kernels chown -R apache:apache /tftpboot /var/www/html/cruciblewds chown -R postgres /var/www/html/cruciblewds/data/dbbackup cp /tftpboot.old/pxelinux.cfg/* /tftpboot/pxelinux.cfg/ If upgrading from 2.3.2: su postgres -c "psql cruciblewds < dbUpgrades/2.3.3.sql" 1. Change PGSQLPASS to yourdbpass on line 5 of this file /var/www/html/cruciblewds/web.config service httpd start II. New Installation Pre-Requisites Disable selinux, (or don't, this guide assumes you did) A DHCP Server Assign you server a static IP Installation Setup CrucibleWDS Core cd /etc/yum.repos.d/ wget http://download.opensuse.org/repositories/home:tpokorra:mono/CentOS_CentOS6/home:tpokorra:mono.repo cd /tmp yum install httpd mono-opt mono-opt-devel mono-xsp-opt mono-libgdiplus-opt mod_mono-opt gcc perl wget "http://sourceforge.net/projects/cruciblewds/files/2.3.3/cruciblewds2.3.3.tar.gz" tar xvzf cruciblewds-2.3.3.tar.gz rm wds.conf wget http://docs.cruciblewds.org/centos6/wds.conf cp wds.conf /etc/httpd/conf.d/ cp -r cruciblewds /var/www/html/ cp -r tftpboot / ln -s /tftpboot/images /tftpboot/proxy/bios/images ln -s /tftpboot/kernels /tftpboot/proxy/bios/kernels ln -s /tftpboot/images /tftpboot/proxy/efi32/images ln -s /tftpboot/kernels /tftpboot/proxy/efi32/kernels ln -s /tftpboot/images /tftpboot/proxy/efi64/images ln -s /tftpboot/kernels /tftpboot/proxy/efi64/kernels mkdir /images; mkdir /images_hold; mkdir /var/www/.mono chown -R apache:apache /tftpboot /images /images_hold /var/www/html/cruciblewds /var/www/.mono chmod 1777 /tmp echo "/opt/mono/lib/" >> /etc/ld.so.conf ldconfig chkconfig httpd on service httpd restart cd lz4/programs make lz4 ; make install cd ../../ wget https://www.udpcast.linux.lu/download/udpcast-20120424.tar.gz tar xvzf udpcast-20120424.tar.gz cd udpcast-20120424 ./configure make ; make install cd .. Setup Database yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.41.noarch.rpm yum install postgresql94-server service postgresql-9.4 initdb Edit /var/lib/pgsql/9.4/data/pg_hba.conf Change host all all 127.0.0.1/32 ident host all all 127.0.0.1/32 md5 To service postgresql-9.4 start su postgres -c "psql -c \"CREATE DATABASE cruciblewds;\"" su postgres -c "psql cruciblewds < cruciblewds.sql" su postgres -c "psql -c \"ALTER USER postgres with password 'yourdbpass';\"" 1. Change PGSQLPASS to yourdbpass on line 5 of this file /var/www/html/cruciblewds/web.config chown -R postgres /var/www/html/cruciblewds/data/dbbackup chkconfig postgresql-9.4 on service httpd restart Install NFS Server yum install nfs-utils echo "/images /etc/exports echo "/images_hold >> /etc/exports service nfs restart exportfs -a *(ro,sync,no_wdelay,no_root_squash,insecure)" >> *(rw,sync,no_wdelay,no_root_squash,insecure)" chkconfig nfs on chkconfig rpcbind on The NFS Server does not always seem to start correctly after initial install, a reboot takes care of this. Install TFTP Server yum install tftp-server echo "service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }" > /etc/xinetd.d/tftp chkconfig xinetd on service xinetd restart Finally, make all necessary firewall changes for httpd, nfs, tftp Post Install Setup 1. Open the CrucibleWDS Web Interface http://serverIP/cruciblewds 2. Login using cruciblewds / password 3. Select Admin 4. Change Server IP to your IP 5. Next to Server Key click Generate 6. Click Update Settings at the bottom 7. You will then be prompted to create a new boot menu 8. Click Yes 9. Click Create Boot File Client Boot Method Finally you must decide how you will boot your clients. You can do a network boot with PXE or use a bootable ISO with a CD or USB drive. You can also use both options together. Skip to the Client Boot Method section for more info. Installation Problems There are a lot different versions of Mono used in different distros. It is difficult to say what issues you may come across. Some distros need to modify the permissions of /tmp for Mono to work correctly. When starting apache if you see a permission denied error, this is typically the reason. If installation fails, browse or post something in the forums Previous 2.1.4 Install On Open Media Vault TOC Next 2.1.6 Install On CentOS 7 Previous Chapter 2. Getting Started CrucibleWDS 2.3.3 Next 2.1.6 Install On CentOS 7 (x86_64 only) 2.1.6.1 Upgrading To CrucibleWDS 2.3.3 2.1.6.2 New Installation Of CrucibleWDS 2.3.3 I. Upgrading To CrucibleWDS 2.3.3 IMPORTANT: Images created prior to version 2.3.0 cannot be used in Version 2.3.x You must re-upload the images after the Upgrade. Only CrucibleWDS 2.x.x can be upgraded to 2.3.3. cd /tmp service httpd stop mv /tftpboot /tftpboot.old mv /var/www/html/cruciblewds /var/www/html/cruciblewds.old wget "http://sourceforge.net/projects/cruciblewds/files/2.3.3/cruciblewds2.3.3.tar.gz" tar xvzf cruciblewds-2.3.3.tar.gz cp -r cruciblewds /var/www/html/ cp -r tftpboot / ln -s /tftpboot/images /tftpboot/proxy/bios/images ln -s /tftpboot/kernels /tftpboot/proxy/bios/kernels ln -s /tftpboot/images /tftpboot/proxy/efi32/images ln -s /tftpboot/kernels /tftpboot/proxy/efi32/kernels ln -s /tftpboot/images /tftpboot/proxy/efi64/images ln -s /tftpboot/kernels /tftpboot/proxy/efi64/kernels chown -R apache:apache /tftpboot /var/www/html/cruciblewds chown -R postgres /var/www/html/cruciblewds/data/dbbackup cp /tftpboot.old/pxelinux.cfg/* /tftpboot/pxelinux.cfg/ If upgrading from 2.3.2: su postgres -c "psql cruciblewds < dbUpgrades/2.3.3.sql" 1. Change PGSQLPASS to yourdbpass on line 5 of this file /var/www/html/cruciblewds/web.config service httpd start II. New Installation Pre-Requisites Disable selinux, (or don't, this guide assumes you did) A DHCP Server Assign you server a static IP Installation Setup CrucibleWDS Core rpm --import "http://keyserver.ubuntu.com/pks/lookup? op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF" yum-config-manager --add-repo http://download.mono-project.com/repo/centos/ cd /tmp yum install httpd apache2-mod_mono mono-devel make gcc perl wget "http://sourceforge.net/projects/cruciblewds/files/2.3.3/cruciblewds2.3.3.tar.gz" tar xvzf cruciblewds-2.3.3.tar.gz rm wds.conf wget http://docs.cruciblewds.org/centos7/wds.conf cp wds.conf /etc/httpd/conf.d/ cp -r cruciblewds /var/www/html/ cp -r tftpboot / ln -s /tftpboot/images /tftpboot/proxy/bios/images ln -s /tftpboot/kernels /tftpboot/proxy/bios/kernels ln -s /tftpboot/images /tftpboot/proxy/efi32/images ln -s /tftpboot/kernels /tftpboot/proxy/efi32/kernels ln -s /tftpboot/images /tftpboot/proxy/efi64/images ln -s /tftpboot/kernels /tftpboot/proxy/efi64/kernels mkdir /images; mkdir /images_hold; mkdir /var/www/.mono chown -R apache:apache /tftpboot /images /images_hold /var/www/html/cruciblewds /var/www/.mono chmod 1777 /tmp chkconfig httpd on service httpd restart cd lz4/programs make lz4 ; make install cd ../../ wget https://www.udpcast.linux.lu/download/udpcast-20120424.tar.gz tar xvzf udpcast-20120424.tar.gz cd udpcast-20120424 rm console.h wget http://docs.cruciblewds.org/centos7/console.h ./configure make ; make install cd .. Setup Database yum install postgresql-server postgresql-setup initdb Edit /var/lib/pgsql/data/pg_hba.conf Change host all all 127.0.0.1/32 ident host all all 127.0.0.1/32 md5 To service postgresql start su postgres -c "psql -c \"CREATE DATABASE cruciblewds;\"" su postgres -c "psql cruciblewds < cruciblewds.sql" su postgres -c "psql -c \"ALTER USER postgres with password 'yourdbpass';\"" 1. Change PGSQLPASS to yourdbpass on line 5 of this file /var/www/html/cruciblewds/web.config chown -R postgres /var/www/html/cruciblewds/data/dbbackup chkconfig postgresql on service httpd restart Install NFS Server yum install nfs-utils echo "/images /etc/exports echo "/images_hold >> /etc/exports service nfs-server restart exportfs -a chkconfig nfs-server on *(ro,sync,no_wdelay,no_root_squash,insecure)" >> *(rw,sync,no_wdelay,no_root_squash,insecure)" chkconfig nfs-mountd on Install TFTP Server yum install tftp-server echo "service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }" > /etc/xinetd.d/tftp chkconfig xinetd on service xinetd restart Finally, make all necessary firewall changes for httpd, nfs, tftp Post Install Setup 1. Open the CrucibleWDS Web Interface http://serverIP/cruciblewds 2. Login using cruciblewds / password 3. Select Admin 4. Change Server IP to your IP 5. Next to Server Key click Generate 6. Click Update Settings at the bottom 7. You will then be prompted to create a new boot menu 8. Click Yes 9. Click Create Boot File Client Boot Method Finally you must decide how you will boot your clients. You can do a network boot with PXE or use a bootable ISO with a CD or USB drive. You can also use both options together. Skip to the Client Boot Method section for more info. Installation Problems There are a lot different versions of Mono used in different distros. It is difficult to say what issues you may come across. Some distros need to modify the permissions of /tmp for Mono to work correctly. When starting apache if you see a permission denied error, this is typically the reason. If installation fails, browse or post something in the forums Previous 2.1.5 Install On CentOS 6 TOC Next 2.2 Client Boot Method Previous Chapter 2. Getting Started CrucibleWDS 2.3.3 Next 2.2 Client Boot Method Now that CrucibleWDS is installed, it is time to determine how we will boot our clients. There are two options for this. 2.2.1 PXE Boot 2.2.2 Bootable USB / CD PXE Boot A TFTP server was already installed with CrucibleWDS. Now you need to tell your clients to boot from it. This requires a small change to your DHCP Server. Using A Windows DHCP Server 1. Open your DHCP Configuration 2. Select your scope 3. Right click on scope options 4. Select configure options 5. Select option 66 and enter your CrucibleWDS Server IP 6. Select option 67 and enter pxeboot.0 (That is a zero) Using The Provided DHCP Server ( Windows Installs Only ) This method is only intended to be used on isolated networks. For example, your CrucibleWDS Server, a 24 port switch, and your client machines. Not attached to the rest of your network. 1. Give your CrucibleWDS Server a private IP, such as 192.168.1.10 2. Set your Subnet Mask to 255.255.255.0 3. Gateway and DNS are not needed 4. Run C:\inetpub\wwwroot\cruciblewds\Tftpd32\tftpd32_gui.exe 5. Select Settings then check DHCP Server under the Global Tab 6. Select the DHCP tab 7. Set IP Pool starting Address to 192.168.1.20 8. Set Size of Pool to 100 9. Set Mask to 255.255.255.0 10. Set Boot File to pxeboot.0 (That is a zero) 11. Click OK and exit the program 12. Run net stop tftpd32_svc net start tftpd32_svc Other DHCP Servers There are many other DHCP Server options - I won't try to list them all. If you are using something else you will need to consult it's documentation 1. Set the boot server to your CrucibleWDS Server IP 2. Set the boot file to pxeboot.0 ( That is a zero ) CrucibleWDS Proxy DHCP The CrucibleWDS Proxy DHCP Server is a new option as of version 2.3.3. It offer's some important benefits over previous methods. Enables PXE booting for clients whose DHCP Server's do not support setting DHCP options. A prime example of this is a home router. Enables PXE booting for a mix of legacy bios and efi clients This is the same way that Microsoft does it when using Windows Deployment Services Can be one of the easiest ways to setup PXE booting in a simple network setup, and is also the hardest to setup in a more complicated network. You can read more about it here Bootable CD or USB Drive This must be created on a Windows machine Using the boot CD or USB drive offers a few advantages for you. 1. It does not require using a TFTP server or changing DHCP options 2. It can provide enhanced security 3. It can be used along side PXE booting 4. It can be helpful when some clients aren't compatible with PXE booting The obvious drawback is that it isn't as convenient. Bootable CD Creation 1. Download a good text editor, such as Notepad++ 2. Download and install the free trial of UltraISO - The trial allows iso's up to 300MB, we only need 100MB 3. Download the CrucibleWDS Client ISO 4. Login to your CrucibleWDS Server and select Admin 5. Copy the Server Key 6. Open UltraISO and select File then Open and select your client.iso 7. Extract syslinux/isolinux.cfg and open it with Notepad++ 8. For each menu entry in isolinux.cfg 1. Replace the IP in web= to the IP of your CrucibleWDS Server 2. Change WDS_KEY= to your Server Key 9. Save your changes and copy the file back to syslinux/ in UltraISO 10. Extract EFI/boot/grub.cfg 11. Repeat step 8 for this file 12. Copy the grub.cfg back to EFI/boot/ 13. Select File then Save 14. Burn the ISO to a CD Bootable USB Creation 1. Download a good text editor, such as Notepad++ 2. Download a good iso extractor such as 7-Zip 3. Download the CrucibleWDS Client ISO 4. Login to your CrucibleWDS Server and select Admin 5. Copy the Server Key 6. Format your usb drive 7. Extract the contents of client.iso to your usb drive using 7-zip 8. Rename syslinux/isolinux.cfg to syslinux.cfg 9. Open syslinux.cfg with Notepad++ 10. For each menu entry in syslinux.cfg 1. Replace the IP in web= to the IP of your CrucibleWDS Server 2. Change WDS_KEY= to your Server Key 11. Save your changes 12. Edit EFI/boot/grub.cfg with Notepad++ 13. Repeat steps 10 and 11 for this file 14. Run utils\win32\makeboot.bat - This must be run from your portable usb drive This must be run as administrator Previous 2.1.6 Install On CentOS 7 TOC Next 2.3 Create Image Definition Previous Chapter 2. Getting Started CrucibleWDS 2.3.3 Next 2.3 Create An Image Definition An Image definition serves as a placeholder for an image you are preparing to upload 1. Login to the WebUI 2. Select Images 3. Click the + sign to create a new Image 4. Enter an Image Name 5. Click Add Image 2.4 Add A Host A Host, also referred to as a client, is any machine( Physical or Virtual) that you will upload images from or deploy images to. 1. Login to the WebUI 2. Select Hosts 3. Click the + sign to create a new Host 4. Enter the Host Name 5. Enter the Host MAC Address 6. Select the Host Image you just created 7. Click Add Host Hosts can also be added from the client boot menu. This is helpful because it will fill in the MAC Address for you. 2.5 Upload An Image 1. Login to the WebUI 2. Select Tasks 3. Click Start Unicast Session 4. Click Upload on the Host you created earlier 5. Boot your Host via the Client Boot Method you selected 2.6 Deploy The Image To Other Hosts 1. Add additional Hosts with the same Image definition 2. Select Tasks 3. Search for the Host and click Deploy 4. Boot your other Hosts via the Client Boot Method you selected Previous 2.2 Client Boot Method TOC Next 3. Web Interface Previous Chapter 3. Web Interface CrucibleWDS 2.3.3 Next Chapter 3. Web Interface 3.1 Hosts 3.2 Groups 3.3 Images 3.4 Tasks 3.5 Users 3.6 Admin The CrucibleWDS Web interface was redesigned in Version 2.0. It takes a minimalistic approach and offers high usability across all devices including phones, tablets, laptops, and desktops. It requires newer versions of today's browsers. Previous 2.6 Deploy To Other Hosts TOC Next 3.1 Hosts Previous Chapter 3. Web Interface CrucibleWDS 2.3.3 Next 3.1 Hosts Hosts are simply the machines that you will create images from or deploy images to. They must be created if you wish to use them with CrucibleWDS, unless you are using OnDemand Mode ( More on that later ). They are also referred to as clients in this guide. 3.1.1 Create To create a Host select Hosts then select Create New Host. The table below explains each setting. Host Name: The name you enter here is what the machine will be renamed to after it images. Do not use special characters. Host MAC Address: This is how CrucibleWDS knows what host is what. It must be the address of the first NIC that is detected by the client side boot image. Valid formats include 00:00:00:00:00:00 - 00-00-00-00-00-00 - 000000000000 Host Image: The currently assigned image of the host. Both uploading and deploying will use this image. Host Group: (Optional) The group the host belongs to. Host Description: This is for your own use. (Optional) Host Kernel: When using PXE booting this is the Kernel the host will use to boot. If you are having hardware compatibility problems. This is most likely what needs changed. Host Boot Image: When using PXE booting this is the boot image the host will use. It contains the Linux filesystem as well as the scripts needed for CrucibleWDS. There is currently only one option. Host Arguments: (Optional) Use this to pass extra kernel arguments or CrucibleWDS arguments to the client at boot. See Arguments for the current options. Host Scripts Scripts can be used to perform additional tasks that are not already included in the program. They are run immediately after the client has finished it's imaging process while still in Linux. See Custom Scripting for more info. Create Another? This can be helpful when adding a lot of hosts. When this box is checked all values will remain the same after you click Add Host. If you are only incrementing a host name number or mac address all other values will remain the same. 3.1.2 Search The search screen is the default view when you select Hosts. It displays all of the hosts that have been added to the database. The search bar implies a wildcard before and after the string you enter. Leave it blank for all hosts. You can also use this view to delete multiple hosts as well as view additional options for an individual host. 3.1.3 View The view screen presents an additional set of options for the host you selected Edit Host Allows you to change any options that were set when you created the host. View Host History Displays the records of all past host activity Modify Host Boot Menu When PXE booting, This can be used to view or change the current boot menu. Active Tab This can be a helpful diagnostic tool. It shows the current boot menu the client will get when doing a PXE boot. If there is currently an active task, it is displayed. If a custom menu is set then it is displayed, otherwise the default global boot menu is displayed. This is a read only screen for information purposes only. Custom Tab The custom tab allows you to create a boot file specifically for the selected host. You can start from scratch or start from a selected template. Templates are created under the Admin View. Custom boot files are only loaded without an active task for the host. If a task is created a new file is temporarily generated for that host. View Host Log Allows you to view the log of the most recent Upload and Deploy of the host. This is a very helpful debugging tool. An important note is that the log does not get copied to the server unless a host checks out or displays a handled error message. Upload Host Starts an Upload Task for the selected host. ( From client to server ) Deploy Host Starts a Deploy Task for the selected host. ( From server to client ) Delete Host Deletes the selected host. 3.1.4 Import The Import view allows you to upload a CSV list of hosts. A template is located in the web directory /data/dbbackup Previous 3. Web Interface TOC Next 3.2 Groups Previous Chapter 3. Web Interface CrucibleWDS 2.3.3 Next 3.2 Groups Groups are comprised of a set of Hosts. They serve 3 purposes 1. To quickly change the options for a set of hosts 2. Multicasts 3. Access control for users in the User membership role 3.2.1 Create To create a Group select Groups then select Create New Group. Fill in your options and select the hosts you want to belong to the group. The options are the same as that of a host, except for one option Sender Arguments: (Optional) This is only used when multicasting a group. If gives some control over the multicast behavior. One example is specifying the NIC to use. You could dedicate a NIC to only be used for one group. See the complete list of Sender Arguments 3.2.2 Search The search screen is the default view when you select Groups. It displays all of the groups that have been added to the database. The search bar implies a wildcard before and after the string you enter. Leave it blank for all groups. You can also use this view to delete multiple groups as well as view additional options for an individual group. Note: Deleting a group does not delete the hosts that belong to the group 3.2.3 View The view screen presents an additional set of options for the group you selected Edit Group Allows you to change any options that were set when you created the group. View Group History Displays the records of all past group activity Modify Group Boot Menu When PXE booting, This can be used to change the current boot menu for all hosts in the group. Custom Tab You can start from scratch or start from a selected template. Templates are created under the Admin View. Custom boot files are only loaded without an active task for the host. If a task is created a new file is temporarily generated for that host. Multicast Group Starts a Multicast Task for the selected group. Unicast Group Starts a Unicast Task for each individual host in the group. Delete Group Deletes the selected group (Not the hosts in the group). 3.2.4 Import The Import view allows you to upload a CSV list of groups. A template is located in the web directory /data/dbbackup Previous 3.1 Hosts TOC Next 3.3 Images Previous Chapter 3. Web Interface CrucibleWDS 2.3.3 Next 3.3 Images Images contain the data that is captured from a host during an Upload. They are a compressed block level specific format file. They cannot be viewed or modified without deploying them back to a hard drive. 3.3.1 Create To create an Image select Images then select Create New Image. When creating an image it only creates an entry in the database and sets up the directory structure until an image is uploaded.The table below explains each setting. Image Name: A name for your image. Do not use special characters. Image Description: (Optional) For your own use. Protected: A protected image cannot be deleted while in the web interface. It also cannot be overwritten by an upload task. Visible In On Demand Hides the image option from the client side On Demand Mode. 3.3.2 Search The search screen is the default view when you select Images. It displays all of the images that have been added to the database. The search bar implies a wildcard before and after the string you enter. Leave it blank for all imagess. You can also use this view to delete multiple images as well as view additional options for an individual image. Note: Deleting an image deletes it's entry in the database as well as all directories and files for that image. The search screen also displays the current compressed size of the image on the server as well as the minimum hard drive size required to deploy the image back to. The main view displays the first hard drive only. Click the plus sign will show all the hard drives if multiple were uploaded. 3.3.3 View The view screen presents an additional set of options for the image you selected Edit Image Allows you to change any options that were set when you created the image. View Image History Displays the records of all past image activity View Image Specs Allows you to control how an image is deployed. Any Hard drive or partition that is marked Active will be deployed. You may also specify a custom size for the partition. Click Update to apply your changes. Clicking Restore will always set everything back to original settings. There are no validation checks for these settings. If you make changes and you don't know what you are doing, the image process will most likely fail. Warning: A destination hard drive is always erased when restoring an image. For example, if you choose to deploy just one partition, the destination drive will be erased and only 1 partition will be restored. It cannot add on to an existing Hard Drive. Delete Image Deletes the selected image (And all files that belong to the image). 3.3.4 Import The Import view allows you to upload a CSV list of images. A template is located in the web directory /data/dbbackup. This only adds the image definitions to the database. It does not create the directories. You will need to copy the image files manually. Previous 3.2 Groups TOC Next 3.4 Tasks Previous Chapter 3. Web Interface CrucibleWDS 2.3.3 Next 3.4 Tasks Tasks is the central location to view, start, and cancel tasks. 3.4.1 View Active Tasks The View Active Tasks Screen allows you view and cancel active unicasts and multicasts 3.4.2 Start Unicast Session Allows you to start an Upload or Deploy task for a specific host 3.4.3 Start Multicast Session Allows you to start a Multicast for a specific group. It also can start a unicast deploy for each individual host in a group. 3.4.4 Start On Demand Session Allows you start an On Demand Multicast for an individual image. Previous 3.3 Images TOC Next 3.5 Users Chapter 3. Web Interface CrucibleWDS 2.3.3 Previous Next 3.5 Users Users are used for access to the web interface as well as some of the client boot options. 3.5.1 Create To create a User select Users then select Create New User. The table below explains each setting. User Name: A name for your user. Do not use special characters. User Membership: There are 3 different membership roles for Users Administrator Has unrestricted access to the web ui and client boot options Power User Has unrestricted access to Hosts, Groups, Images, and Tasks Has unrestricted access to client boot options Does not have access to users or admin User Has no access by default Can Start tasks,modify hosts, modify groups only for the groups assigned to the user Client Debug and On Demand can be individually assigned User Password: A password for the user. The user can change the password after they login. 3.5.2 Search The search screen is the default view when you select Users. It displays all of the users that have been added to the database. The search bar implies a wildcard before and after the string you enter. Leave it blank for all users. You can also use this view to delete multiple users as well as view additional options for an individual user. 3.5.3 View The view screen presents an additional set of options for the image you selected Edit User Allows you to change any options that were set when you created the user. When editing a user, leaving the password blank will leave the current password intact. View User History Displays the records of all past user activity Delete User Deletes the selected user. 3.5.4 Import The Import view allows you to upload a CSV list of users. A template is located in the web directory /data/dbbackup. Previous 3.4 Tasks TOC Next 3.6 Admin Chapter 3. Web Interface CrucibleWDS 2.3.3 Previous Next 3.6 Admin 3.6.1 Global Settings The table below explains each setting. Server IP: The IP of your CrucibleWDS Server. Many aspects of the program depend on this being correct. Web Server Port: The port that you have set your CrucibleWDS Web Server to run on. Image Store Path: The location of permanently stored image files. After an image is uploaded it is moved here. If you change this location you must also manually change your NFS share exports, and in Global Settings change NFS Deploy Path Image Hold Path: The location of temporarily stored image files during an upload. After an image is uploaded it is moved to Image Store Path. If you change this location you must also manually change your NFS share exports, and in Global Settings change NFS Upload Path. Both Image Store Path and Image Hold Path must reside on the same partition or filesystem. TFTP Path: Used for PXE booting. The location for all files necessary to PXE boot. Typically you should not need to change this. Web Service: The web service that clients use to communicate with the server. You should never need to change this. Server Key: A security key that clients use to communicate with the server. If you installed on Linux or FreeNAS you should have generated a new key after installation. Windows installs automatically generate a key during install. A big reason for this was the addition of a bootable ISO or USB drive. This prevents someone from downloading the client iso and using it on your system. Or if someone misplaces a CD or thumbdrive, simply generate a new key and render all others obsolete. The generate button is simply a suggestion. You can use any value here that you want. Server Key Mode: Automated (Less Secure) The key is embedded in the pxe boot menu and does not require user intervention when imaging. Manual (More Secure) The key is not stored in the pxe boot menu and the user will be prompted to enter the key on each client for each imaging task. Image Transfer Mode: Specifies how images are deployed and uploaded. Multicast transfers are not affected by this, but whatever method you have selected must still be setup correctly in order for multicasting to work. Each has pros and cons. Changing the Image Transfer Mode does not automatically create nfs or smb shares. You must do that manually. nfs Least secure - There is a potential that someone could connect to and read your image files, but not delete or change them. Two nfs shares are used. Image store is a read only nfs share and Image hold is a read/write nfs share. The image will upload to the Image hold location and will be moved to the Image store location upon completion. All deployments will then occur from the Image store location. Both image uploads and deploys will use an nfs share This is the most tested method and has been used since the beginning of CrucibleWDS nfs+http Less secure - No one can access the image files without knowing the Server Key Introduced in Version 2.0 One nfs share is used. The Image hold location is a read/write nfs share. The image will upload to the Image hold location and will be moved to the Image store location upon completion. All deployments will then occur from the Image store location but using http instead of nfs, eliminating the possibility of someone downloading the image without knowing the server key. Uploads are transferred over NFS and deploys are transferred over HTTP To effectively make this more secure you will need to disable the read only NFS Share for your Image Store Path smb More secure - Allows password protected smb / windows shares. Introduced in Version 2.3.1 One SMB share is used. Both image uploads and deployments will use the Image store location, it is important to note that the Image hold location must still be valid even though it is not used. To effectively make this more secure you should disable all nfs shares if applicable. smb+http More secure - Allows password protected smb / windows shares. Introduced in Version 2.3.1 One SMB share is used. Both image uploads and deployments will use the Image store location, it is important to note that the Image hold location must still be valid even though it is not used. Image Uploads use SMB and deployments use http. To effectively make this more secure you should disable all nfs shares if applicable. udp+http Most secure (Subjective) - No one can access the image files without knowing the Server Key Most problematic Slowest Upload method Introduced in Version 2.0 Neither NFS or SMB is used. Uploads are transferred via UDP across the multicast address 224.0.0.1 directly to the Image store location, Deployments are transferred via HTTP from the Image store location. It is important to note that the Image hold location must still be valid even though it is not used. Requires multicast support on your routers / switches even though the transfer isn't really a multicast To effectively make this more secure you will need to disable the NFS Share or SMB Share for your Image Store Path and Image Hold Path or disable the NFS Service completely Image Checksum: On Calculates the checksum of an image before it is deployed, to make sure it hasn't been tampered with. Everytime you upload an image, either a power user or an administrator must approve the new checksum before the image can be deployed. Setting this on will cause a small delay when starting the deploy task or viewing image specs while the checksum is calculated. Off The checksum feature is not used. Queue Size: Determines how many clients can simultaneously be deployed to. This has no effect on multicasts or uploads. If you don't have a powerful server you will need to keep this number low, maybe 1 or 2. This works great if you want to queue up 100 machines or so, leave for the night and come in the next morning they are all ready. NFS Upload Path: This is the path the client uses to connect to the NFS Upload Share. If you changed Image Hold Path, this must be changed also. This is a read/write NFS path. NFS Deploy Path: This is the path the client uses to connect to the NFS Deploy Share. If you changed Image Store Path, this must be changed also. This is a read only NFS path. SMB Path: This is the path the client uses to connect to the SMB share if you are using smb or smb+http for your Image Transfer Mode. SMB Username: The username to connect to your SMB share. By default uses the local user cruciblewds that was created during installation(On Windows Only). SMB Password: Using Proxy DHCP: The password to connect to your SMB share. By default uses the password you specified during installation for local user cruciblewds.(On Windows Only). Yes Tells CrucibleWDS that a proxy DHCP server is being used and that boot files should be created in tftpboot/proxy/bios , tftpboot/proxy/efi32 , and tftpboot/proxy/efi64, instead of the standard tftpboot directory. When using this mode you will always have 3 default boot menu's to manage, 1 for each architecture. Also when tasks are created, 2 menu's are always created. One supporting syslinux and the other supporting ipxe. No Only one pxe boot architecture can be supported at a time. Boot files are created in the tftpboot directory. PXE Mode: When Proxy DHCP is set to no this is the Bootfile that is used. If a host is having trouble pxe booting try changing this. Pxelinux has been around a long time and should offer the best compatibility. Unlike Proxy DHCP, This cannot be changed for individual hosts, everyone must use the same setting. Proxy BIOS PXE Mode: When using Proxy DHCP mode, the Global boot file that is used for legacy BIOS clients. Boot files for specific hosts can be set using the CWDS Proxy DHCP Reservations file. Proxy Efi32 PXE Mode: When using Proxy DHCP mode, the Global boot file that is used for 32 bit efi clients. Boot files for specific hosts can be set using the CWDS Proxy DHCP Reservations file. Proxy Efi64 PXE Mode: When using Proxy DHCP mode, the Global boot file that is used for 64 bit efi clients. Boot files for specific hosts can be set using the CWDS Proxy DHCP Reservations file. Compression Algorithm: When uploading an image this algorithm is used to compress the image. lz4 may provide faster uploads but maybe slower downloads. gzip may provide slower uploads but maybe faster downloads. Compression Level: When uploading an image this the level of compression. 1 least compression. 9 most compression. Force SSL: If you have enabled SSL in your webserver, you can use this to automatically redirect all requests for CrucibleWDS to https. Warning if you enable this without first enabling and testing SSL you will not be able to access the site. You will need to manually edit the database to turn it back off. Default Host View: By default, when you select Hosts a list of all hosts are displayed. This can be cumbersome or slow to load if you have 1000's of hosts. Changing this to search will not display any hosts until you search for them. On Demand Mode: Globally enables or disables On Demand Mode on both server and client. AD Login Domain: Enables logging into the Web Interface via Active Directory Credentials. Simply enter your domain name. Then add users to CrucibleWDS where the CrucibleWDS username matches the AD username. The password field will still need a random password entered. This feature only works when Installed on Windows. Global Host Arguments: The same as setting a host or group argument but applies to all hosts. Sender Arguments: (Server) Only used for multicasting. Gives you the ability to provide additional arguments for the multicast sender. Check Multicast Arguments for the complete list. This settings also exists under Groups. The global admin setting will be ignored if something is set for that specific group. Receiver Arguments: (Server) Only used when image transfer mode is set to udp+http. Gives you the ability to provide additional arguments for the multicast receiver. Check Receiver Arguments for the complete list. A common need for this is to specify the interface to receive the data on the server. Receiver Arguments: (Client) Gives you the ability to provide additional arguments for the multicast receiver on the client. Check Receiver Arguments for the complete list. UDPcast Start Port Only used for multicasting. Multicast will transfer on any of the ports in the range / UDPcast End that is specified here. Port: 3.6.2 Boot Menu The boot menu option controls the default boot when clients PXE Boot. The default boot menu is the menu that is displayed when clients are not part of an active task. Editor Tab Gives you free reign to make any changes you like to the default boot menu. Use the Sha Generator to generate passwords for different menu entries Templates Tab The Templates Tab serves two purposes. 1. Allows you to always generate a new working default boot menu 1. Select default from the drop down box 2. Pick a kernel that all of the boot menu entries will use 3. Enter a password for each boot menu entry, they can be all the same or different 4. Click Create Boot File 2. Allows you to make default boot menu templates that can then be assigned to specific hosts or groups 1. Select new template from the drop down box 2. Create a template name and fill in the menu 3. Click Create Template 4. The template can now be accessed from the Hosts and Groups view menu 3.6.3 Logs Allows you view multicast and exception logs. 3.6.4 Export Database Exports all Hosts, Groups, Image Definitions, and Users to a CSV file. 3.6.5 Reports Displays some general imaging statistics Previous 3.5 Users TOC Next 4. Additional Help Topics Previous Chapter 4. Additional Help Topics CrucibleWDS 2.3.3 Next Chapter 4. Additional Help Topics 4.0 Kernel Dependencies 4.1 On Demand Mode 4.2 Prepare An Image For Upload 4.3 Automatic PC Name Changing 4.4 Automatic Domain Joining 4.5 Prepare Host For PXE Booting 4.6 Wake On Lan 4.7 Custom Scripting 4.8 Backup 4.9 Changing The Server IP Address 4.10 Partition And Hard Drive Control 4.11 Arguments 4.12 Modify Initrd 4.13 Create A Custom Kernel 4.14 Alternate Storage 4.0 Kernel Dependencies As new features are added to CrucibleWDS, there may be newer kernels that are required to utilize the features. This might mean that a new option was added to a kernel or that I didn't have it enabled in previous kernels. Here is the current list Resizable LVM Partitions Requires kernel 3.17.1 or newer - This was the first kernel that I enabled device mapper and will be compatible moving forward. Storing Images On SMB Shares Requires kernel 3.18.1 or newer - This was the first kernel that I enabled CIFS and will be compatible moving forward. VMWare Currently using vmware guests requires using the kernel series 3.12.x. I have added cifs and lvm as of 3.12.39 4.1 On Demand Mode On Demand Mode allows you to perform a number of tasks from the client opposed to using the WebUI. You can deploy any image to any host regardless of what is currently assigned to the host in the WebUI. You can even deploy to hosts that aren't registered with your CrucibleWDS Server. You can do the same for Uploading and creating new images. Finally you can join custom multicast sessions. Automatic host name changing and custom scripts will still run if your hosts are registered with the database. If your host is not in the database you will be asked to give the host a name. If you enter a name it will use this name to automatically set the name of the host. If you leave the name blank CrucibleWDS will not attempt to change the name of the host. Entering a name does not add the host to the database. It is only used one time to name the host. To Use On Demand For Unicast Deploy or Upload Boot you client using the client boot method you chose. Select On Demand from the menu and follow the on screen prompts. To Use On Demand For Multicast In the Web UI, select Tasks then select Start On Demand Session. Select the image you would like to deploy and click start multicast. Make note of the session name that was created. The name is the port number for the multicast. Boot the clients you want to connect to the session and select On Demand. Select the Multicast option from the menu. A list of active multicast sessions will be listed. Enter the session number you want to join. An On Demand multicast does not know how many clients you want to connect. Because of this there is no way to have the session automatically start. You will need to press Enter on any host, after all of your hosts have connected. 4.2 Prepare An Image For Upload CrucibleWDS was designed to work with Sysprep and is always recommended, but it is not required. To ensure successful image creation you need to make sure you file system is clean for either Windows or Linux. To verify on Windows - open a cmd prompt and enter chkntfs c: - make sure the result is not dirty. Imaging may also fail if you drive is heavily fragmented. If you are uploading Windows 8 - Fast Startup must be disabled. Once these steps are complete, simply shutdown the computer and start your image upload. 4.3 Automatic PC Name Changing Automatic Host Name changing is used to change the name of the computer before it boots into Windows, saving you a step in your imaging process. Automatic hostname changing works by modifying the Sysprep answer file if it exists or changing the registry. In order to use this feature with Sysprep you must set the computer name in your Sysprep answer file to CrucibleWDS (Case Sensitive). After the host has imaged CrucibleWDS will search the answer file for the computer name CrucibleWDS and replace it with the host name set in the database. If Sysprep is not used, the search for the answer file will fail and the host name will be changed by modifying the system registry. Currently automatic host renaming is only enabled for Windows Images. Linux has too many distros that could all use different methods for setting the hostname. You can easily add this feature for you specific distro by using custom scripting. Note: The following locations are case sensitive To Use This Feature With Windows 8 Sysprep Your Sysprep file must be named unattend.xml and it must be located at c:\Windows\System32\Sysprep To Use This Feature With Windows 7 Sysprep Your Sysprep file must be named unattend.xml and it must be located at c:\Windows\System32\sysprep To Use This Feature With Windows XP Sysprep Your Sysprep file must be name sysprep.inf and it must be located at c:\Sysprep 4.4 Automatic Domain Joining At this time there are no plans to provide an alternative method to automatically join a domain after imaging. This can be done very easily with the Sysprep answer file, or by using a startup or login script. 4.5 Prepare Host For PXE Booting Setting your client for PXE booting varies for every computer model. This is done in the client's bios. Usually you need to set your PC's network card to enable PXE booting or network booting. You should also enable WOL . There are few ways to setup your PC for PXE booting. You could set your network card as the first boot option, and then set your hard drive after that. Using this approach your computer will always boot to PXE first, it will check to see if it has an active task, if it doesn't it will continue to boot to Windows. The other option is to enable PXE booting but to have your network card listed after your hard drive in the boot order. Using this method the computer will not boot to the PXE menu by default. You would need to manually select a Network boot when the computer is first loading. Most computers have a shortcut key for network booting, many times it is F12. Note: PXE booting with computers that use EFI has been added to version 2.3.1 but it still experimental. You could also set your machine to use legacy bios or use the USB/CD boot method for EFI. Note: The CrucibleWDS PXE boot menu has Boot To Local Machine listed as the default option. This does not actually mean boot to the Local Machine. It basically means, exit the PXE boot and load from the next item in the boot order. If your hard drive is not listed in your boot order after the Network Card, then the computer will not boot to windows. Also not all bios handle this correctly. You may need to look into chainloading or using grub if you are having problems. 4.6 Wake On Lan When a task is created for uploading, deploying, or multicasting, CrucibleWDS automatically tries to wake up the clients. The exception to this is On Demand Mode. Since CrucibleWDS does not know the intended recipients for an On Demand Deployment there is no way to wake them up. This feature is more for convience and should not be relied upon. WOL is not the most reliable technology for alot of reasons. Here are a few. First you must make sure your client has WOL enabled in the bios. Second, WOL uses broadcast addresses. Routers break up broadcast domains. Depending on your configuration WOL may or may not work in different subnets. Third, WOL relies on the MAC address table of a switch. If a PC has not sent or received data for some time, it is possible that the clients MAC will not be known to the switch and WOL will fail. 4.7 Custom Scripting Scripts are used primarily to copy files (driver packs, startup scripts, printer scripts, etc), modify registry settings, and modify text files. A script is run immediately after a client has finished imaging, before it boots into the OS. This means the client is still in Linux, so the scripts are actually bash scripts. Scripts are located at your web directory\data\clientscripts. A sample script is provided. I would recommend downloading Notepad++ and setting the language to shell to modify the scripts. Then view your host or group and assign the scripts you want . Scripts are run in alphabetical order, so name accordingly. While we are on the topic of customization, I tried to setup CrucibleWDS in a manner that would make it easy to customize. The CrucibleWDS web interface can be changed with any text editor. There is no need to recompile. Additionally, the client scripts are all located at your web directory\data\clientscripts\core. You can change any of them as you see necessary. 4.8 Backup A Typical Backup Scenario This should provide you with a backup of your CrucibleWDS Server that can be restored to any other version. It does not do a full database dump, it only saves your host, group, image, and user list to CSV. If you want an exact database copy you will need to manually do a database dump. When restoring from a full database dump you will most likely only be able to restore to the exact same version of CrucibleWDS that you were using. Login to the webui Select Admin then Export Database Copy your images, any custom scripts, any custom kernels, and your database export to a new location A Typical Restore Scenario Copy your images, any custom scripts, and any custom kernels back to the new server Login to the webui Select Hosts then Import and upload your hosts csv file Do the same for groups, images, and users 4.9 Changing The Server IP If you need to change the IP of your CrucibleWDS Server, simply update all IP references in the global settings and create a new default boot menu Previous 3.6 Admin TOC Next 4.10 Partition and Hard Drive Control Previous Chapter 4. Additional Help Topics CrucibleWDS 2.3.3 Next 4.10 Partition And Hard Drive Control By default CrucibleWDS will image every hard drive and every partition in the system. By using host or group arguments you can gain some control over this behaviour. The following are the commands to control the partitions and hard drives. These are all specified in the host or group arguments and are case sensitive. Uploading: disks= Here you can specify the hard drives to upload. The drives must be enclosed in quotes. The command disks="/dev/sda /dev/sdb" will only upload those two drives. You can also switch the order if you wanted to do /dev/sdb first parts= Here you can specify the partitions to upload. The partitions must be enclosed in quotes. The command parts="1 2 5" will only upload the first, second, and fifth partition. This goes by partition name not physical order. Limitation: The parts command can only be specified globally, meaning if you upload more than one hard drive, the parts command will be used for each one. Deploying: Deploying is controlled by both the disks= argument and the new view image specs option The view image specs screen allows you to mark Hard Drives and Partitions as active, as well as control the size of partitions. Anything that is marked active will be restored. They are always restored in the same order they are listed in on the screen. You can switch the restore order by using the disk= command. The command disks="/dev/sdb /dev/sda" will restore the first hd listed on the view image specs screen to /dev/sdb and the next to /dev/sda If you are restoring the same number of active hard drives as there are hard drives in the system, the disks= command is not needed. Here is where it gets a little complicated The disks= command must match the number of active hard drives or you can expect unexpected results. For example, you are restoring to a computer with 2 hard drives, but you have only made 1 hard drive active. If you forget to set disks="/dev/sda", the current active hard drive will be restored to both hard drives in the system. Previous 4. Additional Help Topics TOC Next 4.11 Arguments Previous Chapter 4. Additional Help Topics CrucibleWDS 2.3.3 Next 4.11 Arguments 4.11.1 Host / Group Arguments 4.11.2 Sender / Receiver Arguments 4.11.1 Host / Group Arguments Host and Group arguments are set when adding or modifying Hosts or Groups or globally under admin. These arguments are all case sensitive. noResize=true Only used for uploads. NTFS and Ext filesystems are always shrunk to the smallest possible size to enable restoring images to smaller drives than the original. If this is causing problems, you can disable the resize with this command. You will only be able to restore the image to hard drives that are equal or greater than the original size. lvmResize=false Only used for uploads. Each LVM is imaged as it's own partition to enable resizable lvm images. If this is causing problem, this argument will disable handling individual lv's and handle it at the physical partition level. Your lvm partitions will not be resizable. forceDynamicPartitions=true Only used for deployments. CrucibleWDS will dynamically create partitions when restoring images. The exception to this is when the hard drive is exactly the same size as the original. Then CrucibleWDS will simply restore the MBR that was used before. There are times when this does not seem to work. This argument will tell CrucibleWDS to make it's own partitions for the client. sizeDebug=true If uploading an image and it appears to freeze on calculating hard drive and image size, this will display more output to the screen to try and determine where the problem is. skipCoreDownload=true When a client loads, it downloads the necessary scripts from the server. This makes it easy for you to make customizations or apply patches. Setting this argument will skip this download and use the existing scripts that are already included in the compiled initrd.gz skipClock=true When a client loads it will sync both the hardware clock and system time with the CrucibleWDS Server. This option lets you disable that. shutdown=poweroff The default behaviour for a client after a task is run is to reboot. This will shutdown the client after a task has run. shutdown=noshut The default behaviour for a client after a task is run is to reboot. This will return the client to it's shell after a task, to allow user interaction. This can be a helpful debugging tool. heads=240 spt=63 If a machine doesn't boot after a deploy it may be an issue with the MBR and the geometry of the hard drive reported by the bios. You can try to manually set the geometry of the hard drive with this argument. This has no effect when uploading the image. I have only ever needed this once on one model of a Lenovo laptop. 4.11.2 Sender / Receiver Arguments These arguments both relate to settings on Server not the client. Sender arguments control the way a multicast behaves. Receiver arguments are only used when the image transfer mode is set to udp+http. If you want to change the receiver arguments for the client you need to modify the core scripts. This is the list of the most commonly used options. To view all options see the official UDPcast documentation. --interface 192.168.56.1 If you have more than one active NIC on your server you may need to specify which interface the multicast should be sent from. You could also use this to dedicate a separate NIC for multicasting. --full-duplex If you are sure that your multicast session will be entirely full duplex you can try enabling this for a little performance gain. Use this option if you use a full-duplex network. T-base10 or 100 is full duplex if equipped with a switch. Hub based networks, or T-base-2 networks (coaxial cable) are only half-duplex and you should not use this option with these networks, or else you may experience a 10% performance hit. --blocksize 1456 You may see the biggest performance gain by tweaking this. You should change this to a packet size that won't be fragmented on your network. Keep in mind an additional 58 bytes of overhead is added to whatever you enter. I can't explain why but 700 gave me the most consistent results, even though it really makes no sense. The max value is 1456. --max-wait 600 This is used to set the wait time before a multicast will start, regardless of how many clients have connected. The timer starts after the first client has connected. In seconds. --nokbd Currently a multicast can be forced to start after any number of clients have joined the session. This is done by pressing any key after the client has joined. To disable this feature use this command. Note: If you use this command and do not set a max wait, there will be no way to start the multicast if you find that a group member is missing or broken. Previous 4.10 Partition And Hard Drive Control TOC Next 4.12 Modify Initrd Previous Chapter 4. Additional Help Topics CrucibleWDS 2.3.3 Next 4.12 Modify Initrd The initrd contains the Linux filesystem that is loaded by the client. It is locate at C:\inetpub\wwwroot\cruciblewds\tftpboot\images or /tftpboot/images in Linux. Every host can have it's own initrd if specific changes are needed, example tagging for vlans. It contains all the scripts and applications needed for CrucibleWDS. There a few ways to make changes to it. I. Changing CrucibleWDS Client Scripts From The Server When a client loads initrd it loads all of the scripts needed from the CrucibleWDS web server. This makes it easy to do custom changes to the CrucibleWDS client process without needing to manually change initrd. The scripts are located at C:\inetpub\wwwroot\cruciblewds\web\data\clientscripts\core or /var/www/cruciblewds/web/data/clientscripts in Linux. II. Mounting initrd - Requires Linux Initrd can be mounted as an ext2 filesystem in any Linux distro. mkdir initmount gunzip initrd mount -o loop initrd initmount Make your changes umount initmount gzip initrd III. Build From Scratch(Buildroot) - Requires Linux Grab the latest copy of buildroot Extract and cd to buildroot directory svn checkout http://svn.code.sf.net/p/cruciblewds/code/trunk/src/CrucibleWDS_Buildroot/buil 2013.11/32bit cp -R 32bit/. . make xconfig Make your changes and save the config make source make Copy the resulting initrd.gz back to your CrucibleWDS Server Previous 4.11 Arguments TOC Next 4.13 Create A Custom Kernel Previous Chapter 4. Additional Help Topics CrucibleWDS 2.3.3 Next 4.13 Create A Custom Kernel The Linux Kernel is responsible for a client's hardware compatibility with CrucibleWDS. If your client freezes while loading the kernel or cannot find a hard drive or network card, then your kernel needs changed. CrucibleWDS already comes with a selection of different kernels that can be assigned in the host options. You should try them all first before attempting to create a custom kernel. This guide was written for Ubuntu 12.04 but should work for newer versions. I. Install Necessary Packages apt-get install build-essential subversion libqt4-dev bison flex gettext texinfo zlib1g-dev uuid-dev git II. Download Kernel and Kernel Config You should always build a 32 bit kernel unless building specifically for EFI for use with the client iso Grab a config file from one of the existing kernels here to use as a template Download a kernel to build from kernel.org Extract kernel tar xf linux-x.xx.x.tar.xz cd linux-x.xx.x and copy template config file to current directory rename template config file to .config git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git III. Build Kernel make xconfig Make any changes you want and save the config make ARCH=i386 bzImage The resulting file is located at arch/x86/boot/bzImage Rename it to something like the model of the machine that isn't working Copy to your CrucibleWDS Server at C:\inetpub\wwwroot\cruciblewds\tftpboot\kernels or /tftpboot/kernels in Linux Set your host to use that kernel Previous 4.12 Modify Initrd TOC Next 4.14 Alternate Storage Server Previous Chapter 4. Additional Help Topics CrucibleWDS 2.3.3 Next 4.14 Storage 4.14.1 Preface 4.14.2 Alternate Storage Location On Local Server 4.14.3 Alternate Storage Location On Remote Server 4.14.1 Preface Out of all the pages in this guide, this one and security permissions may be the most important. I highly recommend you take the time to understand what is happening here. This will attempt to explain the process of uploading and deploying images and how it relates to your storage locations and image transfer mode. It will also talk about security considerations for images, and how to change your storage locations both locally and to a remote location. A typical Installation of CrucibleWDS sets up 2 folders for images. One is for permanent storage of the image, all deployments will be sent from this location, and one for temporary upload storage designated as hold. Depending on your image transfer mode, the hold folder may or may not be used. It is important to note, that the hold folder must always exist, even if your transfer mode does not use it. Here is a break down of how the two folders are used depending on the transfer mode you select. nfs Least secure - There is a potential that someone could connect to and read your image files, but not delete or change them. Two nfs shares are used. Image store is a read only nfs share and Image hold is a read/write nfs share. The image will upload to the Image hold location and will be moved to the Image store location upon completion. All deployments will then occur from the Image store location. Both image uploads and deploys will use an nfs share nfs+http Less secure - No one can access the image files without knowing the Server Key One nfs share is used. The Image hold location is a read/write nfs share. The image will upload to the Image hold location and will be moved to the Image store location upon completion. All deployments will then occur from the Image store location but using http instead of nfs, eliminating the possibility of someone downloading the image without knowing the server key. Uploads are transferred over NFS and deploys are transferred over HTTP To effectively make this more secure you will need to disable the read only NFS Share for your Image Store Path Important: The image hold folder is only used when either nfs method is selected, to try and overcome some of the security shortcomings. When the image is moved from the hold path to the store path, it cannot cross over hard drives, partitions, filesystems, nfs shares, smb shares, volumes, datasets, etc. smb More secure - Allows password protected smb / windows shares. Only One SMB share is used for the Image Store location. Both image uploads and deployments will use the Image store location, it is important to note that the Image hold location must still be valid even though it is not used. To effectively make this more secure you should disable all nfs shares if applicable. smb+http More secure - Allows password protected smb / windows shares. Only One SMB share is used for the Image Store location. Both image uploads and deployments will use the Image store location, it is important to note that the Image hold location must still be valid even though it is not used. Image Uploads use SMB and deployments use http. To effectively make this more secure you should disable all nfs shares if applicable. udp+http Most secure (Subjective) - No one can access the image files without knowing the Server Key Most problematic Slowest Upload method Neither NFS or SMB is used. Uploads are transferred via UDP across the multicast address 224.0.0.1 directly to the Image store location, Deployments are transferred via HTTP from the Image store location. It is important to note that the Image hold location must still be valid even though it is not used. Requires multicast support on your routers / switches even though the transfer isn't really a multicast To effectively make this more secure you will need to disable the NFS Share or SMB Share for your Image Store Path and Image Hold Path or disable the NFS Service completely Folder Permissions Your image store and image hold locations must have the correct permission set or you will encounter errors. Let's examine the permission required for them. You should also review all of the permissions required by CrucibleWDS here. 1. Your Web server ( IIS, Apache, or nginx ) must be able to read, create, delete, and move folders inside of your image store and hold location, but does not need access to the top level itself. 2. If you are using NFS or NFS+HTTP, your client will connect to the NFS share as root and from there different things will happen depending on your OS. If using CrucibleWDS Server on WinXP, or Server 2003, the root user will be mapped to the local user cruciblewds, the local user cruciblewds will need modify permissions for the image folders. If using CrucibleWDS Server on Server 2008 or 2012, the root user will be mapped to anonymous logon, it will need modify permissions for the images folders. If using CrucibleWDS on FreeNAS, the root user will be mapped to www, www will need modify access to the image folders If using CrucibleWDS on Linux, the root user will be mapped to root. 3. If you are using SMB or SMB+HTTP, your client will connect as the username and password that you specify in the CrucibleWDS web admin. That user will need read/write permissions. By default is setup to use the local user cruciblewds that is created during install(Windows Only). It is highly recommended only to use a local username for this, not domain credentials. 4. If you are using UDP+HTTP, only the web server needs permission to the image folders. 4.14.2 Alternate Storage Location On Local Server This section will cover changing where your images are stored on the local server from the default setup location. This specifically refers to Windows installs only. The Linux install should be self explanatory since the process is a manual install anyway. The default location for images on Windows is c:\inetpub\wwwroot\cruciblewds\images and c:\inetpub\wwwroot\cruciblewds\images_hold. The following commands are used to create the NFS shares during install, you can use these as an example to recreate them elsewhere. Windows XP C:\sfu\common\nfsshare images=C:\inetpub\wwwroot\cruciblewds\images -o ro root C:\sfu\common\nfsshare images_hold=C:\inetpub\wwwroot\cruciblewds\images_hold -o rw root cscript c:\cruciblewdstmp\installer\global\xcacls.vbs C:\inetpub\wwwroot\cruciblewds\images /T /G cruciblewds:F /E /F cscript c:\cruciblewdstmp\installer\global\xcacls.vbs C:\inetpub\wwwroot\cruciblewds\images_hold /T /G cruciblewds:F /E /F Server 2003 C:\windows\msnfs\nfsshare images=C:\inetpub\wwwroot\cruciblewds\images -o ro root C:\windows\msnfs\nfsshare images_hold=C:\inetpub\wwwroot\cruciblewds\images_hold -o rw root cscript c:\cruciblewdstmp\installer\global\xcacls.vbs C:\inetpub\wwwroot\cruciblewds\images /T /G cruciblewds:F /E /F cscript c:\cruciblewdstmp\installer\global\xcacls.vbs C:\inetpub\wwwroot\cruciblewds\images_hold /T /G cruciblewds:F /E /F Server 2008 and Server 2012 C:\windows\system32\nfsshare images=C:\inetpub\wwwroot\cruciblewds\images -o anon=yes anonuid=0 anongid=0 ro root C:\windows\system32\nfsshare images_hold=C:\inetpub\wwwroot\cruciblewds\images_hold -o anon=yes anonuid=0 anongid=0 rw root icacls c:\inetpub\wwwroot\cruciblewds\images /T /C /grant Everyone:(OI)(CI)F icacls c:\inetpub\wwwroot\cruciblewds\images_hold /T /C /grant Everyone:(OI)(CI)F Finally, in the Web Admin you must update your Image Store Path, Image Hold Path, and if you changed your share names then update NFS Deploy Path and NFS Upoad Path. Windows 7 and Windows 8 Windows 7 and 8 do not have an nfs server option, so instead an SMB share is created during install. This may become the default for all OS's if testing goes well. The shares are created with the following commands: net share images=C:\inetpub\wwwroot\cruciblewds\images /grant:cruciblewds,FULL icacls C:\inetpub\wwwroot\cruciblewds\images /T /C /grant cruciblewds:(OI)(CI)F Finally, in the Web Admin you must update your Image Store Path, Image Hold Path, SMB Path, SMB Username, and SMB Password 4.14.3 Alternate Storage Location On Remote Server It is possible to store your images on a separate storage server, such as a NAS,SAN, Linux File Server, Windows File Server, etc. This guide will give you some pointers on how to set this up. Here are three options for setting the storage to another server I. Alternate NFS Server When using an alternate NFS Server, the CrucibleWDS server must be able to mount the nfs shares. It is necessary for creating, deleting, and moving images. Your clients must also be able to directly connect to the nfs server. If you are already running an nfs server on your CrucibleWDS server, you must first disable the share/exports for /images and /images_hold The following steps assume a Windows / Linux Based NFS Server Begin by making an images folder on your NAS Inside the images folder, create two more folders named store and hold Next create 3 NFS Shares The root images folder should have rw permissions and only be accessible by the ip of you CrucibleWDS Server The images/store folder should have ro permission and be accessible to everyone The images/hold folder should have rw permissions and be accessible to everyone Set permissions so that clients connecting as root will have access and IIS/Apache from CrucibleWDS Server has access Mount your images share to /images on your CrucibleWDS Server In The CrucibleWDS WebUI, change the following Admin Settings Change Image Store Path To /images/store/ Change Image Hold Path To /images/hold Change NFS Upload path to your NFS share of your hold directory Change NFS Deploy Path to your NFS share of your store directory Your export file should look something like this now /images /images/hold /images/store 192.168.56.10(rw,sync,no_wdelay,no_root_squash,insecure) *(rw,sync,no_wdelay,no_root_squash,insecure) *(ro,sync,no_wdelay,no_root_squash,insecure) The following steps assume BSD / FreeNAS Based NFS Server If you are using an NFS Server on a BSD OS. You have a limitation. It is not possible to export multiple shares on the same file system with different permissions. Or at least I have never gotten it work. If you know of a solution please let me know. This means all of the shares must be rw Begin by making an images folder on your NAS Inside the images folder, create two more folders named store and hold Share the images folder with rw permissions to everyone and allow mounting of sub folders Set permissions so that clients connecting as root will have access and IIS/Apache from CrucibleWDS Server has access Mount your images share to /images on your CrucibleWDS Server In The CrucibleWDS WebUI, change the following Admin Settings: Change Image Store Path To /images/store/ Change Image Hold Path To /images/hold Change NFS Upload path to your NFS share of your hold directory Change NFS Deploy Path to your NFS share of your store directory II. Alternate SMB Server When using an alternate SMB Server, the CrucibleWDS server must be able to mount the SMB shares. It is necessary for creating, deleting, and moving images. Your clients must also be able to directly connect to the SMB server. Begin by making an images folder somewhere on your SMB Server Inside the images folder, create two more folders named store and hold Next create 2 SMB Shares Share 1. The root images folder. It will need rw permissions from your CrucibleWDS Server Share 2. The images/store folder. It will need rw permissions from your clients(username and pass set inside CrucibeWDS Web Admin) The images/hold folder will not be used but if you've been reading closely then you know that it still must exist Mount your root images share(Share 1) to a folder on your CrucibleWDS Server In The CrucibleWDS WebUI, change the following Admin Settings Change Image Store Path To the folder you mounted/store Change Image Hold Path To /the folder you mounted/hold Change SMB Path to Share 2 Change SMB Username and SMB Password III. iSCSI This option continues to use the NFS Server on your CrucibleWDS server but stores the images on your NAS / SAN Create an iSCSI share on your NAS Mount it to /images on your CrucibleWDS Server Create store and hold directories inside of /images Modify your exports / nfs shares to reflect the new paths In The CrucibleWDS WebUI, change the following Admin Settings: Change Image Store Path To /images/store/ Change Image Hold Path To /images/hold Change NFS Upload path to your NFS share of your hold directory Change NFS Deploy Path to your NFS share of your store directory Previous 4.13 Create A Custom Kernel TOC Next 4.15 Security Permissions Previous Chapter 4. Additional Help Topics CrucibleWDS 2.3.3 Next 4.15 Security Permissions This section will explain all of the minimum permissions required for CrucibleWDS to run. When installed on Windows or if you followed any of the documentation to install on Linux or FreeNAS, the default permissions are higher than necessary. After you have confirmed that your system is running properly you should revisit this section and scale back the permissions as necessary. Windows All of the Windows permissions should be set recursively. In the following section you could replace instances of IIS_IUSRS to IIS APPPOOL\DefaultAppPool for even tighter security. By default IIS_IUSRS contains all of the application pools for IIS. The default installation for CrucibleWDS only uses the DefaultAppPool, unless you have changed it. c:\inetpub\wwwroot\cruciblewds\web The local users group requires read and execute This enables any user of web interface to view the pages. c:\inetpub\wwwroot\cruciblewds\web\data IIS_IUSRS requires modify This allows IIS to create exception logs, move kernels, upload csv files, etc. c:\inetpub\wwwroot\cruciblewds\web\data\dbbackup NETWORK SERVICE requires write This allows export database function and give postgresql permission to save it here c:\inetpub\wwwroot\cruciblewds\tftpboot SYSTEM requires read This allows the tftp boot files to read by the machines that are booting IIS_IUSRS requires modify This allows IIS to create modify and delete the pxe boot files The permissions for your images folders vary depending on your Image Transfer Mode as well as Windows Version c:\inetpub\wwwroot\cruciblewds\images c:\inetpub\wwwroot\cruciblewds\images_hold nfs | nfs+http Windows XP, Server 2003 IIS_IUSRS requires modify This allows IIS to create, move, and delete image folders cruciblewds requires modify The linux root user will mapped to this user when creating or uploading files using nfs and will need modify permissions to create the image files. Windows 7, 8, Server 2008, 2012 IIS_IUSRS requires modify This allows IIS to create, move, and delete image folders ANONYMOUS LOGON requires modify The linux root user will mapped to this user when creating or uploading files using nfs and will need modify permissions to create the image files. The ANONYMOUS LOGON user can be changed to a different user if you want, I will most likely change it back to the local user cruciblewds starting in version 2.3.3 smb | smb+http IIS_IUSRS requires modify This allows IIS to create, move, and delete image folders cruciblewds - Or the user you specified for SMB Username requires modify The SMB share will connect as this user, therefore the user will need the ability to create files Linux Note that some folder locations will be slightly different depending on your distro /var/www/cruciblewds All users require rx This enables any user of web interface to view the pages. /var/www/cruciblewds/data/ Apache requires rwx This allows Apache to create exception logs, move kernels, upload csv files, etc. /var/www/cruciblewds/dbbackup Postgresql requires rwx This allows export database function and gives postgresql permission to save it here /tftpboot All users require read This allows the tftp boot files to read by the machines that are booting Apache requires rwx This allows Apache to create modify and delete the pxe boot files Note: pxeboot files are always created with the apache user and group with 644 permissions The permissions for your images folders vary depending on your Image Transfer Mode /images /images_hold nfs | nfs+http Apache requires rwx Note: An when an image is created from the WebUI, the folder is always create as the apache user and group with 770 permissions. This allows Apache to create, move, and delete image folders The root user will be used when creating or uploading files using nfs and will create files with permission 644 smb | smb+http Apache requires rwx Note: An when an image is created from the WebUI, the folder is always create as the apache user and group with 770 permissions. This allows Apache to create, move, and delete image folders You will also need rwx for the user of your SMB share To enable access for your SMB user you could either add them to the apache group or do something like this setfacl -Rm u:username:rwx,d:u:username:rwx /images FreeNAS / BSD Most of the permissions for FreeNAS / BSD are the same as Linux but with some minor changes for the image locations. If you followed my installation guide then you will notice that when setting up the NFS share we mapped all users to www. This simply means that when the client connects over nfs it will be mapped as www and will require rwx permissions for the images folders for that user when uploading / deploying images. If you decide to use an SMB share instead of NFS the easiest way to give access to the user is to add it to the www group. If you followed my guide the images folders should have been setup for www:www access. Previous 4.14 Storage TOC Next 4.16. CWDS Proxy DHCP Previous Chapter 4. Additional Help Topics CrucibleWDS 2.3.3 Next 4.16 CWDS Proxy DHCP This section has been divided into 3 parts. The preface will explain what Proxy DHCP is, network considerations, and limitations. The second section will explain how to install CWDS Proxy DHCP, the last section will explain how to integrate CWDS Proxy DHCP with CrucibleWDS. I. Preface I created this small service because of the lack of Proxy DHCP servers for Windows. There are a couple in existence but they either didn't operate in a way that was helpful to CrucibleWDS, weren't free, or weren't open source. CWDS Proxy DHCP behaves in a similar manner to a traditional DHCP server except for two things. First, CWDS Proxy DHCP does not hand out ip addresses. It only sends nextserver(option 66) and bootfile(option 67) to client requests. Second, it only responds to PXE Boot requests. Since this service was created specifically for PXE requests it provides the following benefits. 1. Allows a mix of bios and efi clients to pxe boot simultaneously 2. Allows individual clients to use specific tftp servers and / or specfiic boot file names. 3. Does not require dhcp options to be set on the dhcp server CWDS Proxy can be installed on any Windows machine in your environment. It can be on the same server as your dhcp server, or a different one. It can also be on the same server as CrucibleWDS or a different one. Setup varies for each scenario. Operation When Installed On A Different Server Than Your DHCP Traditionally when a client requests an ip address, it will send out a discover broadcast to port 67 asking for a dhcp offer. Your dhcp server will respond with the ip address among other things. The CWDS Proxy Server will also be listening on port 67 but on another server and will also send out an offer, but only if it is a PXE boot. The offer will only include the next-server ip address and option 60. Next-server will be set to the ip address of the interface you bound it to. Option 60 will be set to PXEClient. Once the client receives this offer it will realize that option 60 has been set to PXEClient. This instructs the client to send a request to the next-server on port 4011. In our case we set the next-server to be the CWDS Proxy DHCP Server which is also listening on port 4011. It will then send an acknowledgement to the client with the ip address of your tftp server and boot file name that is set in the CWDS Proxy DHCP config.ini. Operation When Installed On Same Server as DHCP If CWDS Proxy DHCP is on the same server as your DHCP server, it cannot be bound to port 67 because it is already taken. Only port 4011 will be used. Because of this you must set option 60 to PXEClient (case sensitive) on your dhcp server. Since CWDS Proxy Dhcp cannot listen for discover requests on port 67 it will not be able to set option 60 for you. You must manually set it on your DHCP server. It will then send the appropriate tftp server ip and boot file name based on your config.ini settings. Network Considerations CWDS Proxy DHCP follows the same rules as a traditional DHCP server in the sense of broadcast domains. CWDS Proxy DHCP will only be visible to clients within the same subnet or vlan. If you need to access it from other segments you must add an ip helper to your switch / router to allow the broadcasts to travel across the broadcast domain. You will end with two ip helpers, one for your DHCP server and one for the CWDS Proxy DHCP server. Limitations CWDS Proxy DHCP will not override options that are already set by your DHCP server. If you have already set option 60, 66 or 67, you must remove them before CWDS Proxy DHCP will work. In addition to this, some DHCP servers automatically set the next-server to be themselves even if you have not set it. These will not work with CWDS Proxy DHCP because options cannot be overridden. II. CWDS Proxy DHCP Service Usage CWDS Proxy DHCP is a separate program from CrucibleWDS. It is also open source. Feel free to use it in any manner you see fit. Installation CWDS Proxy DHCP can be installed as a service or run in console mode from a cmd prompt. It requires .NET 4.0 or newer to run. CrucibleWDS ProxyDHCP is already included with CrucibleWDS 2.3.3. Located at c:\inetpub\wwwroot\cruciblewds\CWDS_ProxyDhcp. You can also download the latest version here Ensure ports 67 and 4011 are open Modify config.ini to your liking. Directions are in config.ini or see next section Run install.bat as administrator to install Start the service Or run CWDS_ProxyDHCP.exe --console --debug from a cmd prompt to run in console mode Config and ACL Files The service must be restarted when any of the following files are changed. config.ini interface: The ip address of the nic you want to bind to. Only 1 is supported. If left blank it will bind to the first active interface that is found. next-server: The ip address of the tftp server you want to connect to. If left blank the interace address will be used. listen-discover: Listen for dhcp discover requests on port 67. Must be false if a dhcp server is running on the same server. You must set option 60 on your dhcp server to PXEClient when false. Must be true if dhcp service is running on a different server. Option 60 should not be set. allow-all-mac: When true, responds to all PXEBoot request from any mac address. When false, you must use the allow file to specify mac addresses bios-bootfile: the boot file for legacy bios clients efi32-bootfile: the boot file for efi 32 bit clients efi64-bootfile: the boot file for efi 64 bit clients allow This file contains a list of allowed mac addresses for CrucibleWDS ProxyDHCP This file is ignored unless allow-all-mac is set to false in the config.ini. This file expects one mac per line in the format of 000000000000 or 00:00:00:00:00:00 or 00-00-00-00-00-00-00 deny This file contains a list of denied mac addresses for CrucibleWDS ProxyDHCP The denied list always overrides the allow list This file expects one mac per line in the format of 000000000000 or 00:00:00:00:00:00 or 00-00-00-00-00-00-00 reservations This file contains a list of mac address reservations for CrucibleWDS ProxyDHCP. This can be used send specific clients to specific tftp servers or boot files. This file expects one reservation per line in the format of mac,next-server,bootfile ex: 00:11:22:33:44:55,192.168.56.1,proxy/bios/pxelinux.0 III. Integration With CrucibleWDS Integrating with CrucibleWDS is very simple. Ensure you have read section I and II above to understand how it works. The tftpboot directory structure is already setup to allow proxy dhcp, and the config.ini file already has the boot files set correctly. You just need to do the following: Set the next-server to your CrucibleWDS server ip in the config.ini Start the CWDS Proxy DHCP server in console mode until you verify everything is working. Then use service mode. In the CrucibleWDS Admin view in the WebUI. Set Using proxy dhcp to yes. Then create a new default boot menu. Previous 4.15 Security Permissions TOC Next 5. Troubleshooting Previous Chapter 5. Troubleshooting CrucibleWDS 2.3.3 Next Chapter 5. Troubleshooting 5.1 Multicast Trouble 5.2 PXE/TFTP Trouble 5.1 Multicast Trouble Before troubleshooting a multicast it is helpful to try and understand what is actually happening. Attached is a sample of Wireshark capture of a successful CrucibleWDS multicast. In this example there is a CrucibleWDS Server (192.168.56.1) and two hosts ( 192.168.56.7 , 192.168.56.11 ). When a multicast session is started it advertises itself to all hosts listening on the given port as defined in the global settings. This is always advertised to the multicast address of 224.0.0.1 The default port range is from 9000 to 10000 and every session will increment by 2 ( every session uses 2 ports ) until it reaches 10000 and starts again at 9000. This example was the first session on the server so the source port is 9001 and the destination is 9000. We can see this on line 1 of the packet capture. So what is the server advertising? It is saying " I have created a multicast group 232.168.56.1 , who wants to join? ". The multicast group is always the last 3 octets of your CrucibleWDS Server IP preceded by 232. The multicast group address is where the data transfer actually takes place. Now the first host boots up ( 192.168.56.7 ) and listens on port 9000 and sees the advertisement on 224.0.0.1. It responds to 224.0.0.22 via the IGMP protocol and says "I would like to join the group" this is seen on line 6 of the capture. The next host ( 192.168.56.11 ) does the same as seen on line 12. The data transfer then begins as seen on line 16. Again the address that is used is 232.168.56.1, the advertising multicast address of 224.0.0.1 is no longer used for anything. After the transfer is complete the hosts will then leave the group via IGMP protocol. From this brief explanation lets examine what configuration changes may be needed for a switch/router/firewall. Ports 9000-1000 must be opened and not be in use by any other programs The program udp-sender must be allowed to bypass the firewall for both incoming and outgoing traffic The address 224.0.0.1 must be allowed and not in use The address 232.168.56.1 must be allowed and not in use The IGMP protocol must be enabled If multicasting across subnets, multicast forwarding must be enabled IGMP Snooping should be enabled to get the best performance from the switch. This ensures that the multicast data is only sent to the hosts asking for it. Problem 1 - Multicast Task Fails To Start From WebUI Login To WebUI Select Admin Select Logs Select Multicast.log from the dropdown Listed in the log is the exact command that is ran for the multicast. Copy and paste into a cmd prompt or terminal. It should give you some insight as to why the task won't start Problem 2 - Multicast Task Starts But Clients Do Not Connect The best way to test Multicasting is on an isolated network with a simple unmanaged switch, as it minimizes the chance of interference from firewalls or incorrect network settings. When you have it working there, then move on to your existing infrastructure. For debug purposes you should Completely disable the firewall on your CrucibleWDS Server. Run a live packet capture on your CrucibleWDS Server. These steps were written for a Windows Server but can easily be adapted for Linux. Test 1 On Your Server Open a Command prompt echo "Testing CrucibleWDS Multicast" | C:\inetpub\wwwroot\cruciblewds\web\data\apps\udp-sender --portbase 9000 --ttl 1 It should respond with Broadcasting control to 192.168.56.255 with the address being the broadcast address of your subnet. If you have more than one NIC verify the correct one is being used On A Host ( This host should be on the same subnet as your server - but not required) Boot to the client console udp-receiver --portbase 9000 Your server should show a new connection New connection from 192.168.56.7 (#0) 00000009 Now press any key to start the transfer You should see Testing CrucibleWDS Multicast appear in the client console If you do - Congrats multicast works with hosts in the same subnet as your server - time to try Test 2 If you don't - Revisit the multicast procedure above to pinpoint where things are going wrong, firewall, switch config, etc. Test 2 On Your Server Open a Command prompt echo "Testing CrucibleWDS Multicast" | C:\inetpub\wwwroot\cruciblewds\web\data\apps\udp-sender --portbase 9000 --ttl 32 It should respond with Broadcasting control to 224.0.0.1 with the address being the multicast address. If you have more than one NIC verify the correct one is being used On Two Hosts ( These hosts should be on different subnets if possible - but not required ) Boot to the client console on each host udp-receiver --portbase 9000 Your server should show a new connection from host 1 New connection from 192.168.56.7 (#0) 00000009 Your server should show a new connection from host 2 New connection from 192.168.56.11 (#1) 00000009 Now press any key to start the transfer You should see Testing CrucibleWDS Multicast appear simultaneously in both client consoles If you do - Congrats multicast works with multiple hosts in different subnets. You should not have problems when Imaging using Multicast. If you don't but Test 1 was successful, most likely your network firewalls or switches need some configuration Problem 3 - Multicast Is Slow Or Choppy This is the most difficult problem to resolve. Here is a list of some possible culprits Switch not configured properly - IGMP Snooping Switch cannot handle the transfer low end switch simply doesn't handle multicasting very well Bad NIC Bad Patch Cable Incompatible Kernel 1 hosts connects at 100Mb while the rest connect at 1000Mb - effectively slowing the entire session Extra hosts connected to the switch but not part of the session Incorrect blocksize set in the CrucibleWDS global settings - Remember there are 58 bytes of overhead added to whatever you have set. You should set to the best frame size for your equipment to minimize fragmenting Faulty host - bad hd, bad ram And probably more .... 5.2 PXE / TFTP Trouble This guide speaks specifically to Windows installs, but the principals can be applied to other OS's I. Verify All Boot Files Exist Navigate to C:\inetpub\wwwroot\cruciblewds\tftpboot Verify that pxeboot.0 and pxelinux.cfg\default exist II. Verify The TFTP Service Is Running III. Perform A TFTP Transfer Test Navigate to C:\inetpub\wwwroot\cruciblewds\Tftpd32 Open tftpd32_gui.exe Select the Log Viewer Tab - Keep it open for useful info Download This Simple TFTP Client Open a cmd prompt and cd to the location of your downloaded TFTP Client Run tftp.exe yourserverip get pxeboot.0 Ex: tftp.exe 192.168.56.1 get pxeboot.0 It should respond with File pxeboot.0 was transferred successfully The tftp client test should have been run on your server. If it was successful you should also run it from another pc in your network to verify no firewalls or network issues are blocking the transfer. IV. Everything Checks Out But Clients Still Cannot PXE Boot Verify your DHCP options are set correctly Verify no other DHCP scopes are trying to set the same DHCP options that could override your settings Verify no other DHCP server is serving up requests before yours Try a different model of computer. Some machines simply refuse to PXE boot(not following standards I guess, you will need to use the client iso for these) Disable The TFTP Anticipation Window - Some clients don't support this Navigate to C:\inetpub\wwwroot\cruciblewds\Tftpd32 Open tftpd32_gui.exe Select Settings Select the TFTP tab Uncheck Use anticipation window Restart TFTP Service Previous 4.16 CWDS Proxy DHCP TOC Next 6. Known Bugs Previous Chapter 6. Known Bugs CrucibleWDS 2.3.3 Next Chapter 6. Known Bugs There are currently no known bugs with CrucibleWDS 2.3.3 Previous 5. Troubleshooting TOC Next 7. Limitations Previous Chapter 7. Limitations CrucibleWDS 2.3.3 Next Chapter 7. Limitations Raid Raid is not supported. You will most likely corrupt your data if you attempt to upload an image with a system using Raid. Multicasting Multicast only deploys to the first hard drive. Additional drives will be skipped. Previous 6. Bugs TOC Next 8. Forum Guidelines Previous Chapter 8. Forum Guidelines CrucibleWDS 2.3.3 Next Chapter 8. Forum Guidelines (Please Read) Please adhere to the following rules when using the forums: The more information you give the better I can assist you. For example, a post that says "Not Working" is not very helpful. It is the kind of post that drives a developer mad, and is grounds for simply ignoring the post, but I will probably just redirect you back to this page. I have put a lot of my personal time into this project and the least you could do is put 5 minutes into a well constructed forum post. The following information is helpful for every new topic: Clearly state the problem CrucibleWDS Version Server Version (Server 2012, Ubuntu 14.04, etc) Client Boot Method Client OS Have you tried to fix the issue yourself, if so what did you do? Have you made any changes to CrucibleWDS, or is it an OOB Install? Attach any relevant logs - See below Gathering Logs Most importantly: Be kind, be respectful. This will NOT become a forum / Wordpress site like so many others, where everyone fights or one person bashes another. Everyone has different knowledge levels and everyone learns differently. What is apparent to someone may not be to someone else, myself included. Be patient. I am only one person, I have a job, a family, and a life. I will respond when I have a few extra minutes. Typically at night when I should be sleeping. If there is a language barrier let me know in advance. I don't have all the answers. I can try to help where I can, but you need to be willing to do some work on your end. This program is not for everyone, as with life, you will get out what you put in. Read the docs, watch the videos, browse the forums, do some research. I am not obligated to help you as you are not obligated to use the software. Do not threaten to stop using the software. I assure you I don't care. I have no ads for this site and make no money(aside from the occasional donation, thank you donors). It costs me my personal money and time to provide this software, and I do so in the hopes that it helps a person, company, school, etc from the rising costs of managing an IT infrastructure. I hope the forums can become a place that users feel comfortable with. A place to talk about all aspects of imaging, and collaborate with each other. If the forums are being misused, or not adhering to the guidelines set above, I will most likely ban the user or shut down the forums. Gathering Logs You should also attach any relevant logs to your forum post.(Please attach the log file to the post, DO NOT paste the contents into the post.) Installation Logs Installation logs are only available for Windows since it's the only automated installer. It is located at c:\cruciblewdstmp\CrucibleWDS_Install.log Imaging Logs Imaging logs can be accessed from the WebUI. Select Hosts Find the Host in question and select View Select View Host Log Select Upload or Deploy from the Drop Down Box and select Export If you are using On Demand mode. The logs are in a different location. Select Admin Select Logs Select ondemand.download or ondemand.upload from the Drop Down Box and select Export If you are troubleshooting an image upload then attach the upload log. If you are troubleshooting a deploy you should attach both the upload log that was used to create the image as well as the deploy log. Multicast Logs Multicast logs are available in the WebUI Select Admin Select Logs Select multicast.log from the Drop Down Box and select Export Exception Logs Exception logs are available in the WebUI only if you've had an exception. Select Admin Select Logs Select exceptions.log from the Drop Down Box and select Export Previous 7. Limitations TOC Next TOC
© Copyright 2024