<html><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"><title>Using SlapOS in the Windows</title><metaname="generator"content="DocBook XSL Stylesheets V1.76.1"></head><bodybgcolor="white"text="black"link="#0000FF"vlink="#840084"alink="#0000FF"><divclass="book"title="Using SlapOS in the Windows"><divclass="titlepage"><div><div><h1class="title"><aname="id9249316"></a>Using SlapOS in the Windows</h1></div><div><divclass="author"><h3class="author"><spanclass="firstname">Jondy</span><spanclass="surname">Zhao</span></h3></div></div><div><divclass="revhistory"><tableborder="1"width="100%"summary="Revision history"><tr><thalign="left"valign="top"colspan="3"><b>Revision History</b></th></tr><tr><tdalign="left">Revision 0.5</td><tdalign="left">2013-08-29</td><tdalign="left">Jondy Zhao - jondy.zhao@nexedi.com</td></tr><tr><tdalign="left"colspan="3">Add some packages when install cygwin; Change the steps of generating installer from source. </td></tr><tr><tdalign="left">Revision 0.4</td><tdalign="left">2013-08-01</td><tdalign="left">Jondy Zhao - jondy.zhao@nexedi.com</td></tr><tr><tdalign="left"colspan="3">Add chapter Create SlapOS Windows Installer Bootstrap Node.</td></tr><tr><tdalign="left">Revision 0.3</td><tdalign="left">2013-07-11</td><tdalign="left">Jondy Zhao - jondy.zhao@nexedi.com</td></tr><tr><tdalign="left"colspan="3">Add chapter SlapOS Sources Changed For Windows.</td></tr><tr><tdalign="left">Revision 0.2</td><tdalign="left">2013-07-05</td><tdalign="left">Jondy Zhao - jondy.zhao@nexedi.com</td></tr><tr><tdalign="left"colspan="3">Add Cron Service and Know Issues section, fix some problems in the chapter Generating windows installer from sources.</td></tr><tr><tdalign="left">Revision 0.1</td><tdalign="left">2013-06-20</td><tdalign="left">Jondy Zhao - jondy.zhao@nexedi.com</td></tr><tr><tdalign="left"colspan="3">Create the document.</td></tr></table></div></div></div><hr></div><divclass="toc"><p><b>Table of Contents</b></p><dl><dt><spanclass="chapter"><ahref="#ch_introduction">1. Introduction</a></span></dt><dt><spanclass="chapter"><ahref="#ch_install_slapos">2. Installing SlapOS node in the Windows</a></span></dt><dt><spanclass="chapter"><ahref="#id9207224">3. Using Slapos in the Windows</a></span></dt><dd><dl><dt><spanclass="section"><ahref="#sec_configure_slapos">3.1. Configure SlapOS</a></span></dt><dt><spanclass="section"><ahref="#id9256195">3.2. SlapOS Node</a></span></dt><dt><spanclass="section"><ahref="#id9256216">3.3. SlapOS</a></span></dt><dt><spanclass="section"><ahref="#id9256231">3.4. SlapOS Runner</a></span></dt><dt><spanclass="section"><ahref="#id9256256">3.5. Command Console</a></span></dt><dt><spanclass="section"><ahref="#id9256288">3.6. User Guide</a></span></dt><dt><spanclass="section"><ahref="#id9256298">3.7. Cron Service</a></span></dt><dt><spanclass="section"><ahref="#id9256322">3.8. Known issues</a></span></dt></dl></dd><dt><spanclass="chapter"><ahref="#ch_generate_window_installer">4. Generating windows installer from sources</a></span></dt><dd><dl><dt><spanclass="section"><ahref="#id9256438">4.1. Setting Up Cygwin</a></span></dt><dt><spanclass="section"><ahref="#id9256634">4.2. Building SlapOS</a></span></dt><dt><spanclass="section"><ahref="#id9256705">4.3. Preparing the sources files for installer</a></span></dt><dt><spanclass="section"><ahref="#id9256910">4.4. Making installer</a></span></dt></dl></dd><dt><spanclass="chapter"><ahref="#ch_run_slapos_from_sources">5. Run SlapOS From Sources</a></span></dt><dt><spanclass="chapter"><ahref="#id9257047">6. SlapOS Sources Changed For Windows</a></span></dt><dd><dl><dt><spanclass="section"><ahref="#id9257149">6.1. How to upgrade the sources</a></span></dt><dt><spanclass="section"><ahref="#id9257198">6.2. How to upgrade installer</a></span></dt><dt><spanclass="section"><ahref="#id9257208">6.3. Merge sources to master branch</a></span></dt></dl></dd><dt><spanclass="chapter"><ahref="#id9257231">7. Create SlapOS Windows Installer Bootstrap Node</a></span></dt><dd><dl><dt><spanclass="section"><ahref="#id9257273">7.1. Add SlapOS Bootstrap Node to Vifib Cluster</a></span></dt></dl></dd><dt><spanclass="appendix"><ahref="#appendix_cygwin_packages">A. Cygwin Required Packages List</a></span></dt></dl></div><divclass="chapter"title="Chapter 1. Introduction"><divclass="titlepage"><div><div><h2class="title"><aname="ch_introduction"></a>Chapter 1. Introduction</h2></div></div></div><p>SlapOS can be described as a cloud operating system in which "everything is a process" unlike Unix in which "everything is a file". If one has to manage thousands of servers with thousands of processes, hundred different applications in multiple different releases or versions, SlapOS can help you a lot by making the whole management process well specified, automated and under control.</p><p>The goal of this tutorial is to teach how to use SlapOS in the windows.</p></div><divclass="chapter"title="Chapter 2. Installing SlapOS node in the Windows"><divclass="titlepage"><div><div><h2class="title"><aname="ch_install_slapos"></a>Chapter 2. Installing SlapOS node in the Windows</h2></div></div></div><p>At first, we need to sign up in VIFIB community Cloud by clicking here <aclass="ulink"href="https://www.slapos.org/login_form"target="_top">https://www.slapos.org/login_form</a></p><p>Then download the latest slapos windows installer from <aclass="ulink"href="http://www.erp5.org/dists/installer"target="_top">http://www.erp5.org/dists/installer</a>, the filename of windows installer look like slapos-XXX-windows-YYY-all-in-one.exe or slapos-XXX-windows-YYY.exe, XXX stands for version-release information. YYY could be X86 or x64, the former means 32-bit, the latter 64-bit windows. The all-in-one installer include all the files required by slapos node, so it can run in the computer which doesn't access internat; the later will download most of packages from internet and build, so it need more time than all-in-one installer. It's recommanded to use the former installer in case of slow or unstable internet even if the size of all-in-one installer is more than 100MB, compare of the latter which size is about 2MB.</p><p>Double click the installer, click Next, Next ...
</p><divclass="note"title="Note"style="margin-left: 0.5in; margin-right: 0.5in;"><h3class="title">Note</h3><p>If the current user isn't Administrator, you need run it as Administrator. Right click the installer, then click Run As Administrator.</p></div><p>
</p><p>At the final wizard page, click Install.</p><p>Waiting for everything done.</p><p>If you prefer to install slapos node from sources, refer to the chapter <aclass="xref"href="#ch_run_slapos_from_sources"title="Chapter 5. Run SlapOS From Sources">Chapter 5, <i>Run SlapOS From Sources</i></a>.</p></div><divclass="chapter"title="Chapter 3. Using Slapos in the Windows"><divclass="titlepage"><div><div><h2class="title"><aname="id9207224"></a>Chapter 3. Using Slapos in the Windows</h2></div></div></div><divclass="toc"><p><b>Table of Contents</b></p><dl><dt><spanclass="section"><ahref="#sec_configure_slapos">3.1. Configure SlapOS</a></span></dt><dt><spanclass="section"><ahref="#id9256195">3.2. SlapOS Node</a></span></dt><dt><spanclass="section"><ahref="#id9256216">3.3. SlapOS</a></span></dt><dt><spanclass="section"><ahref="#id9256231">3.4. SlapOS Runner</a></span></dt><dt><spanclass="section"><ahref="#id9256256">3.5. Command Console</a></span></dt><dt><spanclass="section"><ahref="#id9256288">3.6. User Guide</a></span></dt><dt><spanclass="section"><ahref="#id9256298">3.7. Cron Service</a></span></dt><dt><spanclass="section"><ahref="#id9256322">3.8. Known issues</a></span></dt></dl></div><p>After SlapOS has been installed successfully, you will find program group "SlapOS" which include the following entries:
</p><divclass="section"title="3.1. Configure SlapOS"><divclass="titlepage"><div><div><h2class="title"style="clear: both"><aname="sec_configure_slapos"></a>3.1. Configure SlapOS</h2></div></div></div><p>It used to generate all the configure files required by slapos slave node, you can run it anytime when you need change the configure of your slapos slave node.</p><p>Go to slapos.org (or any other SlapOS Master), register if not already done, go to My Account and request an SSL certificate:
</p><divclass="itemizedlist"><ulclass="itemizedlist"type="disc"><liclass="listitem"><p>Copy the certificate in a file, save it in C:/slapos/cygwin/certificate</p></li><liclass="listitem"><p>Copy the key in a file, save it in C:/slapos/cygwin/key</p></li></ul></div><p>
You can save them anywhere, but it's better to save them in the path C:/slapos/cygwin which is your slapos installed, because it's the default path in the slapos configure script. </p><p>More information refer to <aclass="ulink"href="http://community.slapos.org/wiki/osoe-Lecture.SlapOS.Extended/developer-Installing.SlapOS.Client"target="_top">http://community.slapos.org/wiki/osoe-Lecture.SlapOS.Extended/developer-Installing.SlapOS.Client</a></p><p>Then register your computer to slapos.org community Cloud. By doing so, we will obtain X509 certificate and key which are later needed for the configuration process.
</p><divclass="itemizedlist"><ulclass="itemizedlist"type="disc"><liclass="listitem"><p>Login to www.slapos.org. Go to the "My Space" area and then to the "My Servers" section. Click on the button "New Server". This button will lead you to a page where you can specify the name of your server.</p></li><liclass="listitem"><p>Enter a self contained name to identify your server. Consider a name "VIFIB 19 Asus i7 for JB" rather than "My Server". This will help you find your server later on. Click on the "Add" button.</p></li><liclass="listitem"><p>X509 key and certificate are generated. Certificates are not stored by slapos.org server. They will be lost if you do not save them : Do not close this web page yet as we are going to store the key and certificate in files in next step. </p></li><liclass="listitem"><p>Copy the certificate in a file, save it in C:/slapos/cygwin/computer.crt</p></li><liclass="listitem"><p>Copy the key in a file, save it in C:/slapos/cygwin/computer.key</p></li></ul></div><p>
More information refer to <aclass="ulink"href="http://community.slapos.org/wiki/osoe-Lecture.SlapOS.Extended/developer-Running.SlapOS.on.your.computer"target="_top">http://community.slapos.org/wiki/osoe-Lecture.SlapOS.Extended/developer-Running.SlapOS.on.your.computer</a> in the section VIFIB Registration.</p><p>Now it's time to run Configure SlapOS, click Start -> SlapOS -> Configure SlapOS, if the current user isn't Administrator, Right click Configure SlapOS, then Run As Administrator.</p><p>Or you can run configure script in the command line, first click Start -> SlapOS -> Command Console, if the current user isn't Administrator, Right click Command Console, then Run As Administrator, then in the command line:
</p><preclass="programlisting">
/etc/opt/slapos/scripts/slapos-configure.sh
</pre><p>
The configure script will guide you to configure slapos slave node, first, a super account "slaproot" will be created, you need type the password for this account
</p><preclass="programlisting">
*** Info: Please enter a password for new user slaproot. Please be sure
*** Info: that this password matches the password rules given on your system.
*** Info: Entering no password will exit the configuration.
*** Query: Please enter the password:
*** Query: Reenter:
</pre><p>
Remember this password, it may be required when you run slapos configure again.
</p><preclass="programlisting">
</pre><p>
Next the configure script need certificate and key information:
</p><divclass="itemizedlist"><ulclass="itemizedlist"type="disc"><liclass="listitem"><p>Type computer certificate filename, if it's stored in the default path as above, type Enter directly</p></li><liclass="listitem"><p>Type computer key filename, if it's stored in the default path as above, type Enter directly</p></li><liclass="listitem"><p>Type client certificate filename, if it's stored in the default path as above, type Enter directly</p></li><liclass="listitem"><p>Type client key filename, if it's stored in the default path as above, type Enter directly</p></li></ul></div><p>
Then waiting for configure script finished. Be sure the configure scrip report successfully, otherwise fix the problem and run it again. You can run Slapos Configure at anytime, and netx time you needn't input anything, configure scripts just checks all the configuration and update the configure files.
</p></div><divclass="section"title="3.2. SlapOS Node"><divclass="titlepage"><div><div><h2class="title"style="clear: both"><aname="id9256195"></a>3.2. SlapOS Node</h2></div></div></div><p>It's used to create instance of slapos webrunner, format slapos node, release software and create instance, you an run it at any time.</p><p>Click Start -> SlapOS -> SlapOS Node, if the current user isn't Administrator, Right click SlapOS Node, then Run As Administrator.</p><p>Be sure the scrip reports successfully, otherwise fix the problem and run it again.</p></div><divclass="section"title="3.3. SlapOS"><divclass="titlepage"><div><div><h2class="title"style="clear: both"><aname="id9256216"></a>3.3. SlapOS</h2></div></div></div><p>This is used by slapos client, now it's connected to <aclass="ulink"href="https://www.slapos.org"target="_top">https://www.slapos.org</a>. Logon and enjoy the journey in the SlapOS Cloud world.</p></div><divclass="section"title="3.4. SlapOS Runner"><divclass="titlepage"><div><div><h2class="title"style="clear: both"><aname="id9256231"></a>3.4. SlapOS Runner</h2></div></div></div><p>SlapOS Runner is a web based development tool which uses slapgrid to install the software, and it could be used to manage your slapos slave node in your computer.</p><p>After installing slapos, Node Runner isn't available. You need run SlapOS Node first. After that, Node Runner would be available.</p><p>Refer to <aclass="ulink"href="http://community.slapos.org/wiki/osoe-Lecture.SlapOS.Extended/developer-Howto.Use.SlapOS.Web.Runner.html5"target="_top">http://community.slapos.org/wiki/osoe-Lecture.SlapOS.Extended/developer-Howto.Use.SlapOS.Web.Runner.html5</a></p></div><divclass="section"title="3.5. Command Console"><divclass="titlepage"><div><div><h2class="title"style="clear: both"><aname="id9256256"></a>3.5. Command Console</h2></div></div></div><p>It will open a terminal, here you can run most of slapos command, for examples,
</p><preclass="programlisting">
slapos node format -cv --now
slapos supply slaprunner COMP-1658
slapos request "Jondy Web Runner In Windows 7" slaposwebrunner --node computer_guid=COMP-1658
slapos node software
slapos node instance
slapos node status
</pre><p>
</p><p>For more information, refer to <aclass="ulink"href="http://git.erp5.org/gitweb/slapos.core.git/blob/HEAD:/documentation/source/slapos.usage.rst?js=1"target="_top">http://git.erp5.org/gitweb/slapos.core.git/blob/HEAD:/documentation/source/slapos.usage.rst?js=1</a></p></div><divclass="section"title="3.6. User Guide"><divclass="titlepage"><div><div><h2class="title"style="clear: both"><aname="id9256288"></a>3.6. User Guide</h2></div></div></div><p>It just shows this documnet in the web browser.</p></div><divclass="section"title="3.7. Cron Service"><divclass="titlepage"><div><div><h2class="title"style="clear: both"><aname="id9256298"></a>3.7. Cron Service</h2></div></div></div><p>After run Configure SlapOS, a cron service will start in the background which used to release software and create instance periodically. Open Cygwin Terminal, type the following command to check cron jobs:
</p><preclass="programlisting">
# List all cron tabs
crontab -l
# Check cron works
tail /var/log/messages
# Edit cron tasks
crontab -e
# Stop cron
net stop cron
# Start cron
net start cron
</pre><p>
</p></div><divclass="section"title="3.8. Known issues"><divclass="titlepage"><div><div><h2class="title"style="clear: both"><aname="id9256322"></a>3.8. Known issues</h2></div></div></div><p>
</p><divclass="itemizedlist"><ulclass="itemizedlist"type="disc"><liclass="listitem"><p>Sometime cygwin service re6stnet cound't be stop by command "net stop", you need kill openvpn at first:
</p><preclass="programlisting">
TASKKILL /F /IM openvpn.exe
net stop re6stnet
rm -rf /var/lib/re6stnet
</pre><p>
Then you can start re6stnet again:
</p><preclass="programlisting">
net start re6stnet
</pre></li><liclass="listitem"><p>If you're in non-english environment, be sure Cygwin Terminal works well in your own chareset. Click Start -> SlapOS -> Command Console, then
</p><preclass="programlisting">
netsh interface ipv6 show interface
</pre><p>
Check localize connection name show correctly. If not, maybe you need set environment variable "LANG" by command "ipwin" which is distributed with slapos windows installer. To be sure it's available. Type the following command:
</p></li><liclass="listitem"><p>Sometimes cygwin report remap errors, for example
</p><preclass="programlisting">
0 [main] python2.7 3416 child_info_fork::abort: unable to remap _zope_interface_coptimizations.dll to same address as parent (0x450000) - try running rebaseall
0 [main] python2.7 2332 child_info_fork::abort: unable to remap etree.dll to same address as parent (0x28B0000) - try running rebaseall
0 [main] python2.7 3604 child_info_fork::abort: unable to remap _zope_interface_coptimizations.dll to same address as parent (0x450000) - try running rebaseall
</pre><p>
You need close all the cygwin box, and double click autorebase.bat in the C:/slapos-node/cygwin/autorebase.bat.
</p></li><liclass="listitem"><p>Sometimes service re6stnet can't start, in this case, open cygwin terminal:
</p><preclass="programlisting">
rm -rf /var/lib/re6stnet
net start re6stnet
</pre><p>
</p></li></ul></div><p>
</p></div></div><divclass="chapter"title="Chapter 4. Generating windows installer from sources"><divclass="titlepage"><div><div><h2class="title"><aname="ch_generate_window_installer"></a>Chapter 4. Generating windows installer from sources</h2></div></div></div><divclass="toc"><p><b>Table of Contents</b></p><dl><dt><spanclass="section"><ahref="#id9256438">4.1. Setting Up Cygwin</a></span></dt><dt><spanclass="section"><ahref="#id9256634">4.2. Building SlapOS</a></span></dt><dt><spanclass="section"><ahref="#id9256705">4.3. Preparing the sources files for installer</a></span></dt><dt><spanclass="section"><ahref="#id9256910">4.4. Making installer</a></span></dt></dl></div><p>This chapter describes how to generate windows installer from sources.</p><divclass="section"title="4.1. Setting Up Cygwin"><divclass="titlepage"><div><div><h2class="title"style="clear: both"><aname="id9256438"></a>4.1. Setting Up Cygwin</h2></div></div></div><p>We need Cygwin environment in order to build slapos sources code in the Windows. </p><p>Go to <aclass="ulink"href="http://cygwin.com/"target="_top">"http://cygwin.com/"</a> and click on <aclass="ulink"href="http://cygwin.com/setup-x86.exe"target="_top">"setup-x86.exe"</a>. This will download a GUI installer called setup-x86.exe which can be run to download a complete cygwin installation via the internet. Follow the instructions on each screen to install Cygwin. </p><p>The Root Directory for Cygwin (default C:\cygwin) will become / within your Cygwin installation. You must have write access to the parent directory, and any ACLs on the parent directory will determine access to installed files.</p><p>By default, setup.exe will install only the packages in the Base category and their dependencies, resulting in a minimal Cygwin installation. We need choose the packages required by SlapOS, see <aclass="xref"href="#appendix_cygwin_packages"title="Appendix A. Cygwin Required Packages List">Appendix A, <i>Cygwin Required Packages List</i></a>. Since setup.exe automatically selects dependencies, be careful not to unselect any required packages.</p><p>Refer to: <aclass="ulink"href="http://cygwin.com/cygwin-ug-net/setup-net.html"target="_top">http://cygwin.com/cygwin-ug-net/setup-net.html</a></p><p>Or you can install cygwin by command console, first you need download setup.exe from cygwin.com, save to D:\temp\setup.exe or somewhere else.
</p><divclass="itemizedlist"><ulclass="itemizedlist"type="disc"><liclass="listitem"><p>In the Windows destktop, Click Start</p></li><liclass="listitem"><p>Click Run, type command: 'cmd', click OK to enter windows console. Be sure you start 'cmd' as Administrator, if the login user isn't Administrator, run 'cmd' as Administrator:</p></li><liclass="listitem"><p>Type the following commands:</p><preclass="programlisting">
</p><divclass="note"title="Note"style="margin-left: 0.5in; margin-right: 0.5in;"><h3class="title">Note</h3><p>Some packages only used to build slapos from sources. Refer to <aclass="xref"href="#package-slapos-developer"title="Note">Note</a> to know more details.</p></div><p>
</p></li></ul></div><p>
A cygwin icon will be added in the windows desktop, click it to enter cygwin box. If the current user isn't Administrator, then right click cygwin icon, click Run As Administrator. Be suer you have enough rights to run the following commands:
</p><preclass="programlisting">
sed -i -e "s/4\.3\.4/4.5.3/g" /usr/bin/libtool
[[ -f /etc/passwd ]] || mkpasswd > /etc/passwd
[[ -f /etc/group ]] || mkgroup > /etc/group
cp /etc/passwd /etc/passwd.orig
</pre><p>
Now we need patch cygport, otherwise we can't specify install path in the buildout.cfg:
</p><preclass="programlisting">
_filename=/usr/bin/cygport
if [[ -f ${_filename} ]] ; then
echo Patching ${_filename} ...
sed -i -e 's/D="${workdir}\/inst"/D="${CYGCONF_PREFIX-${workdir}\/inst}"/g' ${_filename} &&
sed -i -e 's/-DCMAKE_INSTALL_PREFIX=$(__host_prefix)/-DCMAKE_INSTALL_PREFIX=${CYGCONF_PREFIX-$(__host_prefix)}/g' ${_filename} &&
echo OK.
fi
</pre><p>
If you'd like to make the font of command box bigger
</p><preclass="programlisting">
cd ~
cat <<EOF > .minttyrc
BoldAsFont=no
Font=Courier New
FontHeight=16
Scrollbar=none
EOF
</pre><p>
Then restart cygwin command box.
</p><divclass="note"title="Note"style="margin-left: 0.5in; margin-right: 0.5in;"><h3class="title">Note</h3><p>On Windows Vista or Windows 7, you need to run as administrator when launching the cygwin shell to allow the system configuration changes required in some of the steps below. You can configure cygwin to always launch with admin privileges if you wish.</p></div><p>
</p></div><divclass="section"title="4.2. Building SlapOS"><divclass="titlepage"><div><div><h2class="title"style="clear: both"><aname="id9256634"></a>4.2. Building SlapOS</h2></div></div></div><p>Double click the desktop icon "Cygwin" to enter cygwin command box, the following commands are typed in this box.
After exit cygwin, double click autorebase.bat in the Windows explorer. If the current user isn't Administrator, then right click it, click Run As Administrator.
</p></div><divclass="section"title="4.3. Preparing the sources files for installer"><divclass="titlepage"><div><div><h2class="title"style="clear: both"><aname="id9256705"></a>4.3. Preparing the sources files for installer</h2></div></div></div><p>Let's we start cygwin box, then clone slapos.package.git
</p><preclass="programlisting">
cd /opt
rm -rf slapos/slapos.tar.gz
tar czf slapos.tar.gz slapos/
mv slapos.tar.gz slapos/
</pre><p>
Generate regpwd.exe, which used to save user's password to registry:
</p><preclass="programlisting">
cd /opt/git/slapos.package/windows/scripts
gcc -o regpwd.exe regpwd.c
</pre><p>
Then build babeld for cygwin, we need use the sources in the slapos.package.git, they are patched for cygwin:
</p><preclass="programlisting">
cd /opt/git/slapos.package/windows/babeld
# WINVER could be XP, VISTA, WIN7, WIN8
WINVER=XP make
cp babeld.exe /usr/bin
</pre><p>
Now, build ipwin.exe which used to manage slapos network. If you have msvc build environments, build the solution "D:/slapos/opt/git/slapos.packages/windows/ipwin/ipwin.sln" as your perfer. If you have no idea about msvc, do as the following steps:
</p><divclass="itemizedlist"><ulclass="itemizedlist"type="disc"><liclass="listitem"><p>Install Microsoft Visual C++ 2008 Express Edition or later version, you can download package from <aclass="ulink"href="http://www.microsoft.com/visualstudio/express"target="_top">http://www.microsoft.com/visualstudio/express</a>, it's free.</p></li><liclass="listitem"><p>If you're running X64 environments, install Microsoft Windows SDK v7.0. You can download the package from <aclass="ulink"href="http://download.microsoft.com/download/2/E/9/2E911956-F90F-4BFB-8231-E292A7B6F287/GRMSDKX_EN_DVD.iso"target="_top">http://download.microsoft.com/download/2/E/9/2E911956-F90F-4BFB-8231-E292A7B6F287/GRMSDKX_EN_DVD.iso</a>.</p></li><liclass="listitem"><p>Double click D:/slapos/cygwin/opt/git/slapos.packages/windows/ipwin/ipwin/build.bat in the windows explorer, be sure there is no error. This script assumes your vcvarsall.bat installed at "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat", and setenv.cmd installed at "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd" (required only for x64 platform), if not, please edit the script as your installed path.
</p><divclass="note"title="Note"style="margin-left: 0.5in; margin-right: 0.5in;"><h3class="title">Note</h3><p>Don't run build.bat in the cygwin terminal, PROCESSOR_ARCHITECTURE maybe isn't right in the 64-bits architecture machine.</p></div></li></ul></div><p>
</p><p>
Then generate user-guide.html from using-slapos-in-windows.xml, generally you need not do this, just copy this file (you're looking now) to /opt/git/slapos.package/windows/docs.
</p><preclass="programlisting">
cd /opt/git/slapos.package/windows/docs
# Before run make, be sure there is the file /usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl, if not, find it first
# find /usr/share -name docbook.xsl
# Then replace the old file name with this one in the ./Makefile, then run make
Get openvpn files, download official openvpn installer for your windows, for example, openvpn-install-2.3.2-I001-x86_64.exe for windows 7 64-bit, double click it to install openvpn, then:
</p><preclass="programlisting">
mkdir /opt/openvpn
cp -a /cygdrive/c/Program\ Files/OpenVPN/bin /opt/openvpn
cp -a /cygdrive/c/Program\ Files/OpenVPN/driver /opt/openvpn
cp -a /cygdrive/c/Program\ Files/TAP-Windows/driver /opt/openvpn
</p></div><divclass="section"title="4.4. Making installer"><divclass="titlepage"><div><div><h2class="title"style="clear: both"><aname="id9256910"></a>4.4. Making installer</h2></div></div></div><p>We use Inno-Setup sripts to genarate microsoft installer, so we need install inno setup first. You can download the installer from <aclass="ulink"href="http://www.innosetup.com"target="_top">http://www.innosetup.com</a>, then install inno-setup in you computer</p><p>Then click Start -> Inno Setup 5 -> Inno Setup Compiler, to open inno setup.</p><p>In the inno setup window, click File -> Open, select the script: /opt/git/slapos.package/windows/scripts/slapos-all-in-one.iss</p><p>In the section "Setup", there are some options:
</p><divclass="itemizedlist"><ulclass="itemizedlist"type="disc"><liclass="listitem"><p>OutputDir: the generated installer will be saved here</p></li><liclass="listitem"><p>OutputBaseFilename: the prefix of output installer</p></li><liclass="listitem"><p>SourceDir: it's a very important option. It's the root path of all the relative path in the section "Files"</p></li></ul></div><p>
In the section "Files", to be sure all the source files are exsiting in your computer, for example
Assum SourceDir in the section "Setup" is "D:\slapos", the builder will find "D:\slapos\images\slapos.ico" as the source, so this file should be exsited.
</p><p>Click menu Build -> Compile, then wait for the building process finished. You can check the installer in the OutputDir.</p><p>There is another script "slapos.iss", it used to build network installer. All-in-one installer will include all the files, so no internet connection required. However network installer need internet connection to download the files and packages. It's remarkable smaller than all-in-one installer.</p></div></div><divclass="chapter"title="Chapter 5. Run SlapOS From Sources"><divclass="titlepage"><div><div><h2class="title"><aname="ch_run_slapos_from_sources"></a>Chapter 5. Run SlapOS From Sources</h2></div></div></div><p>This chapter describes how to run slapos slave node from sources in the windows.</p><p>First follow the instructions in the above chapter <aclass="xref"href="#ch_generate_window_installer"title="Chapter 4. Generating windows installer from sources">Chapter 4, <i>Generating windows installer from sources</i></a>, except the last section Making Installer.</p><p>Next register to slapos community to get client and computer certificate and key files, refer to <aclass="xref"href="#sec_configure_slapos"title="3.1. Configure SlapOS">Section 3.1, “Configure SlapOS”</a>.</p><p>Then open cygwin box as Administrator, if the current user isn't Administrator, then right click cygwin icon, click Run As Administrator. Be suer you have enough rights to run the following commands:
If there are some errors when run both of scripts, fix them and run again, until no any error reported, and now you can run any slapos command in this terminal.
</p></div><divclass="chapter"title="Chapter 6. SlapOS Sources Changed For Windows"><divclass="titlepage"><div><div><h2class="title"><aname="id9257047"></a>Chapter 6. SlapOS Sources Changed For Windows</h2></div></div></div><divclass="toc"><p><b>Table of Contents</b></p><dl><dt><spanclass="section"><ahref="#id9257149">6.1. How to upgrade the sources</a></span></dt><dt><spanclass="section"><ahref="#id9257198">6.2. How to upgrade installer</a></span></dt><dt><spanclass="section"><ahref="#id9257208">6.3. Merge sources to master branch</a></span></dt></dl></div><p>There are so many slapos sources changed for Windows. In the branch 'cygwin-share' in the slapos.git:
</p><divclass="itemizedlist"><ulclass="itemizedlist"type="disc"><liclass="listitem"><p>Change the buildout.cfg files for components, softwares and stack</p></li><liclass="listitem"><p>Add patch files for building some component</p></li><liclass="listitem"><p>Patch recipe slapos.cookbook</p></li></ul></div><p>
Re6stnet for windows:
</p><divclass="itemizedlist"><ulclass="itemizedlist"type="disc"><liclass="listitem"><p>Branch 'cygwin' in the re6stnet.git</p></li><liclass="listitem"><p>Babeld package for cygwin, in branch 'cygwin' of slapos.package.git, location: windows/babeld</p></li><liclass="listitem"><p>OpenVPN package for cygwin, in branch 'cygwin' of slapos.package.git, location: windows/openvpn</p></li></ul></div><p>
</p><divclass="section"title="6.1. How to upgrade the sources"><divclass="titlepage"><div><div><h2class="title"style="clear: both"><aname="id9257149"></a>6.1. How to upgrade the sources</h2></div></div></div><p>Update sources in the slapos.git, then push it</p><p>Update sources in the slapos.core.git, then push it</p><p>Update sources in the re6stnet.git, then push it</p><p>Update sources in the slapos.package.git, then push it.</p><p>Update egg psutil, for example, upgrade from 0.6.1 to 1.0.0,
# change the version to 1.0.1 in the psutil/__init__.py
python setup.py sdist
</pre><p>
Then upload the source packages dist/psutil-1.0.1.tar.gz to http://www.nexedi.org/static/packages/source/
</p><p>Update egg netifaces, same as psutil, except use patch file netifaces-0.8-1-cygwin.patch</p></div><divclass="section"title="6.2. How to upgrade installer"><divclass="titlepage"><div><div><h2class="title"style="clear: both"><aname="id9257198"></a>6.2. How to upgrade installer</h2></div></div></div><p>Redo all the action in the chapter Generate Installer For Windows</p></div><divclass="section"title="6.3. Merge sources to master branch"><divclass="titlepage"><div><div><h2class="title"style="clear: both"><aname="id9257208"></a>6.3. Merge sources to master branch</h2></div></div></div><p>merge cygwin to master in the slapos.core.git</p><p>merge cygwin to master in the slapos.package.git</p><p>merge cygwin-share to master in the slapos.git</p><p>merge cygwin to master in the re6stnet.git</p></div></div><divclass="chapter"title="Chapter 7. Create SlapOS Windows Installer Bootstrap Node"><divclass="titlepage"><div><div><h2class="title"><aname="id9257231"></a>Chapter 7. Create SlapOS Windows Installer Bootstrap Node</h2></div></div></div><divclass="toc"><p><b>Table of Contents</b></p><dl><dt><spanclass="section"><ahref="#id9257273">7.1. Add SlapOS Bootstrap Node to Vifib Cluster</a></span></dt></dl></div><p>This chapter descripts how to create a slapos node in the windows which used to test the windows installer self:
</p><divclass="itemizedlist"><ulclass="itemizedlist"type="disc"><liclass="listitem"><p>Install cygwin</p></li><liclass="listitem"><p>Prepare certificate, key, computer.key, computer.crt and test-computer.key, test-computer.crt</p></li><liclass="listitem"><p>Run slapos-cygwin-bootstrap.sh, got it from slapos.package.git/windows/scripts</p></li><liclass="listitem"><p>Run command slapos node software/release until instance created</p></li><liclass="listitem"><p>Run command slapos remove to destroy this instance</p></li></ul></div><p>
</p><divclass="section"title="7.1. Add SlapOS Bootstrap Node to Vifib Cluster"><divclass="titlepage"><div><div><h2class="title"style="clear: both"><aname="id9257273"></a>7.1. Add SlapOS Bootstrap Node to Vifib Cluster</h2></div></div></div><p>Create an instance of SlapOS Test-Agent in slapos bootstrap node (computer.key/computer.crt), it will test the software: http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/cygwin-share:/software/slapos-windows-installer/software.cfg, this software can build slapos windows installer, then run the installer to create a slapos test node.</p><p>Create another instance of SlapOS Test-Agent used to test the instances running in the slapos test node (test-computer.key/test-computer.crt). This test agent can include any software which can run in the slapos windows.</p></div></div><divclass="appendix"title="Appendix A. Cygwin Required Packages List"><divclass="titlepage"><div><div><h2class="title"><aname="appendix_cygwin_packages"></a>Appendix A. Cygwin Required Packages List</h2></div></div></div><p>The following packages are requied by SlapOS Node
<chapterid="ch_generate_window_installer"><title>Generating windows installer from sources</title>
<para>This chapter describes how to generate windows installer from sources.</para>
<section><title>Setting Up Cygwin</title>
<sectionid="sec_setup_cygwin"><title>Setting Up Cygwin</title>
<para>We need Cygwin environment in order to build slapos sources code in the Windows. </para>
<para>Go to <ulinkurl="http://cygwin.com/">"http://cygwin.com/"</ulink> and click on <ulinkurl="http://cygwin.com/setup-x86.exe">"setup-x86.exe"</ulink>. This will download a GUI installer called setup-x86.exe which can be run to download a complete cygwin installation via the internet. Follow the instructions on each screen to install Cygwin. </para>
<para>The Root Directory for Cygwin (default C:\cygwin) will become / within your Cygwin installation. You must have write access to the parent directory, and any ACLs on the parent directory will determine access to installed files.</para>
@@ -433,17 +431,10 @@ Assum SourceDir in the section "Setup" is "D:\slapos", the builder will find "D:
<chapterid="ch_run_slapos_from_sources"><title>Run SlapOS From Sources</title>
<para>This chapter describes how to run slapos slave node from sources in the windows.</para>
<para>First follow the instructions in the above chapter <xreflinkend="ch_generate_window_installer"/>, except the last section Making Installer.</para>
<para>First Setting Up Cygwin follow the instructions in the above chapter <xreflinkend="sec_setup_cygwin"/></para>
<para>Next register to slapos community to get client and computer certificate and key files, refer to <xreflinkend="sec_configure_slapos"/>.</para>
<para>Then open cygwin box as Administrator, if the current user isn't Administrator, then right click cygwin icon, click Run As Administrator. Be suer you have enough rights to run the following commands:
If there are some errors when run both of scripts, fix them and run again, until no any error reported, and now you can run any slapos command in this terminal.
</para>
<para>Then run slapos-bootstrap-configure.sh, got it from slapos.package.git/windows/scripts</para>
<para>If there are some errors when run both of scripts, fix them and run again, until no any error reported, and now you can run any slapos command in this terminal.</para>
</chapter>
<chapter><title>SlapOS Sources Changed For Windows</title>
...
...
@@ -513,7 +504,7 @@ Then upload the source packages dist/psutil-1.0.1.tar.gz to http://www.nexedi.or
<itemizedlist>
<listitem><para>Install cygwin</para></listitem>
<listitem><para>Prepare certificate, key, computer.key, computer.crt and test-computer.key, test-computer.crt</para></listitem>
<listitem><para>Run slapos-cygwin-bootstrap.sh, got it from slapos.package.git/windows/scripts</para></listitem>
<listitem><para>Run slapos-bootstrap-configure.sh, got it from slapos.package.git/windows/scripts</para></listitem>
<listitem><para>Run command slapos node software/release until instance created</para></listitem>
<listitem><para>Run command slapos remove to destroy this instance</para></listitem>