parent
32a3f799c0
commit
252a2ccad4
@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
# build.sh
|
||||
# GPLv3+
|
||||
set -x
|
||||
|
||||
# A function to jump to application's root, default .../forksand-it-manual
|
||||
cd $(echo $PWD | sed -e "s/\(.*\/forksand-it-manual\)\/.*/\1/") && echo "current path: $PWD"
|
||||
rootPath=$PWD
|
||||
|
||||
cd source || exit
|
||||
rm ./*.aux
|
||||
rm ./*.l*
|
||||
rm ./*.glo
|
||||
rm ./*.idx
|
||||
rm ./*.out
|
||||
rm ./*.pyg
|
||||
rm ./*.toc
|
||||
|
||||
rm ./_minted-forksand-it-manual/*.pyg*
|
@ -1,51 +0,0 @@
|
||||
%
|
||||
% ClusterHardware.tex
|
||||
%
|
||||
% Fork Sand IT Manual
|
||||
%
|
||||
% Copyright (C) 2018, Fork Sand, Inc.
|
||||
% Copyright (C) 2017, Jeff Moe
|
||||
% Copyright (C) 2017 Aleph Objects, Inc.
|
||||
%
|
||||
% This document is licensed under the Creative Commons Attribution 4.0
|
||||
% International Public License (CC BY-SA 4.0) by Fork Sand, Inc.
|
||||
%
|
||||
|
||||
\section{Cluster Hardware Overview}
|
||||
The cluster will require rackmountable equipment:
|
||||
|
||||
\begin{itemize}
|
||||
\item GNU/Linux Servers
|
||||
\end{itemize}
|
||||
|
||||
|
||||
\section{GNU/Linux Servers}
|
||||
The servers will all run Debian GNU/Linux
|
||||
|
||||
\subsection{Denver Server List}
|
||||
\begin{itemize}
|
||||
\item \texttt{oc1.forksand.com} --- KVM host.
|
||||
\item \texttt{rd1.forksand.com} --- Misc.
|
||||
\end{itemize}
|
||||
|
||||
\section{Network Hardware}
|
||||
The network switches do not run free software.
|
||||
|
||||
\section{Disk Drives}
|
||||
The disk drives do not run free software.
|
||||
|
||||
\begin{itemize}
|
||||
\item Hard drive platters, 7200 RPM, 2.5" and 3.5"
|
||||
\item SSD
|
||||
\item NVMe
|
||||
\end{itemize}
|
||||
|
||||
\section{Suppliers}
|
||||
Who we'll get hardware from.
|
||||
|
||||
\begin{itemize}
|
||||
\item Pogo Linux --- Debian GNU/Linux Servers, USA.
|
||||
\item Viking.net --- Coreboot Opteron servers in Germany.
|
||||
\item raptorcs.com --- POWER9, custom Coreboot systems (?), USA.
|
||||
\end{itemize}
|
||||
|
@ -0,0 +1,496 @@
|
||||
%
|
||||
% Source.tex
|
||||
%
|
||||
% Fork Sand IT Manual
|
||||
%
|
||||
% Copyright (C) 2018, Fork Sand, Inc.
|
||||
% Copyright (C) 2017, Jeff Moe
|
||||
% Copyright (C) 2017 Aleph Objects, Inc.
|
||||
%
|
||||
% This document is licensed under the Creative Commons Attribution 4.0
|
||||
% International Public License (CC BY-SA 4.0) by Fork Sand, Inc.
|
||||
%
|
||||
\section{Hardware}
|
||||
|
||||
\subsection{Cluster Evolution}
|
||||
Forksand started deployment on dedicated servers.
|
||||
\vspace{0.6cm}
|
||||
First stage. Exclusively dedicated servers (deprecated)
|
||||
\vspace{0.4cm}
|
||||
\centering
|
||||
\includegraphics[width=115mm,trim=20mm 20mm 20mm 20mm]
|
||||
{sharkfork-cabling-1-dedicated-vlan.pdf} \\ %
|
||||
%
|
||||
\vspace{0.2cm}
|
||||
\raggedright
|
||||
Second stage. Dedicated servers along with a colocation
|
||||
cabinet. Flat hierarchy. (deprecated)
|
||||
|
||||
\vspace{0.1cm}
|
||||
In progress, services were being migrated one after another to
|
||||
a colocation instance. On the next stage hierarchy becomes vertical. \\
|
||||
\vspace{0.1cm}
|
||||
\centering
|
||||
\includegraphics[width=115mm,trim=20mm 20mm 20mm 20mm]
|
||||
{sharkfork-cabling-2-mixed-vlan.pdf} \\ %
|
||||
%
|
||||
\raggedright
|
||||
Third stage. Dedicated servers buffered by
|
||||
a colocation cabinet. Vertical hierarchy. (deprecated)
|
||||
\vspace{0.4cm}
|
||||
\centering
|
||||
\includegraphics[width=115mm,trim=20mm 20mm 20mm 20mm]
|
||||
{sharkfork-cabling-3-colo-dedicated.pdf} \\ %
|
||||
%
|
||||
\vspace{0.2cm}
|
||||
\raggedright
|
||||
Fourth stage. Dedicated servers discarded.
|
||||
Colocation cabinet buffered only with a firewall. (current)
|
||||
\vspace{0.4cm}
|
||||
\centering
|
||||
\includegraphics[width=115mm,trim=20mm 20mm 20mm 20mm]
|
||||
{sharkfork-cabling-4-final-colocation.pdf} \\ %
|
||||
%
|
||||
\vspace{0.2cm}
|
||||
\raggedright
|
||||
Final stage. Firewall discarded. Single colocation cabinet. (in process)
|
||||
\vspace{0.4cm}
|
||||
\centering
|
||||
%\includegraphics[width=115mm,trim=10mm 10mm 10mm 10mm]
|
||||
%{sharkfork-cabling-4-single-colocation.pdf} \\ %
|
||||
%
|
||||
\raggedright
|
||||
\newpage
|
||||
|
||||
\section{Cluster Hardware Overview}
|
||||
The cluster will require rackmountable equipment:
|
||||
|
||||
\begin{itemize}
|
||||
\item GNU/Linux Servers
|
||||
\end{itemize}
|
||||
|
||||
\begin{minipage}{0.9\textwidth}
|
||||
\subsection{Sharkfork 21U hardware instance} \label{sec:hardware-sharkfork-21U}
|
||||
%\includepdf[width=150mm,offset=0 15,clip]
|
||||
%{sharkfork-21U.pdf}
|
||||
\includegraphics[keepaspectratio=true,height=0.80\textheight,width=150mm,angle=0]
|
||||
{sharkfork-21U.png}
|
||||
% \vspace{150mm}
|
||||
\label{fig:sharkfork-21U}
|
||||
%\vspace{60mm}
|
||||
\end{minipage}
|
||||
|
||||
\newpage
|
||||
|
||||
%\subsubsection{Sharkfork 21U detail hardware description} \label{sec:hardware-description-sharkfork-21U}
|
||||
|
||||
\definecolor{secondary-brown}{HTML}{F3E2C3} % HEX # F3E2C3 R:243 G:226 B:195 C:0 M:7 Y:20 K:5
|
||||
\definecolor{primary-blue}{HTML}{A1F4FF} % HEX # A1F4FF R:161 G:244 B:255 C:37 M:4 Y:0 K:0
|
||||
\definecolor{primary-brown}{HTML}{B07E3B} % HEX # B07E3B R:176 G:126 B:56 C:0 M:28 Y:68 K:31
|
||||
\definecolor{nonbrand-dark-blue}{HTML}{184B6D} % HEX # 184B6D R:19 G:70 B:109 C:0 M:28 Y:68 K:31
|
||||
|
||||
\newcommand{\nodeUnitName}[4]{
|
||||
\rowcolor{#3}\vspace{-1pt}
|
||||
{{\grenewcommand{\currentColor}{#3}}}
|
||||
{{\grenewcommand{\currentTextColor}{#4}}}
|
||||
\Large{\textcolor{#4}{#1}} & \rule[-0.5em]{0pt}{1.8em} \Large{\textcolor{#4}{#2}} \\
|
||||
\rowcolor{#3}\vspace{-1pt}
|
||||
}
|
||||
\newcommand{\nodeUnitParameter}[1]{
|
||||
\rule[1.0em]{0pt}{-1em} & \small{\textcolor{\currentTextColor}{ - #1}} \\
|
||||
\rowcolor{\currentColor}\vspace{-1pt}
|
||||
}
|
||||
\newcommand{\nodeUnitLastParameter}[1]{
|
||||
\rule[-0.5em]{0pt}{0em} & \small{\textcolor{\currentTextColor}{ - #1}} \\
|
||||
\tabucline[0.2pt]{1-2}
|
||||
}
|
||||
\newcommand{\nodeUnitSetItem}[2]{
|
||||
\rowcolor{\currentColor}\vspace{-1pt}
|
||||
\rule[-0.3em]{0pt}{0em}\small{\textcolor{\currentTextColor}{ ~#1}} & \small{\textcolor{\currentTextColor}{#2}} \\
|
||||
\tabucline[0.2pt]{1-2}
|
||||
}
|
||||
\newcommand{\nodeUnitSetLastItem}[2]{
|
||||
\rowcolor{\currentColor}\vspace{-1pt}
|
||||
\rule[-0.3em]{0pt}{0em}\small{\textcolor{\currentTextColor}{ ~#1}} & \small{\textcolor{\currentTextColor}{#2}} \\
|
||||
\tabucline[2pt]{1-2}
|
||||
}
|
||||
%\newcommand{\nodeUnitSetNotes}[2]{
|
||||
% \pickColor{#2}
|
||||
% \rule[-0.3em]{0pt}{0em}\small{Notes:} & \small{#1} \\ \tabucline[2pt]{1-2}
|
||||
%}
|
||||
|
||||
\newcommand{\currentColor}{secondary-brown}
|
||||
\newcommand{\currentTextColor}{secondary-brown}
|
||||
|
||||
\begin{table}[!htb]
|
||||
%\caption{IP configs of nodes} \label{tab:sharkNodeIPConfig}
|
||||
\begin{tabu}{|[2pt]l|[2pt]p{14.5cm}|[2pt]}
|
||||
\tabucline[2pt]{1-2}
|
||||
\multicolumn {1}{|[2pt]l|[2pt]}{\rule[-0.7em]{0pt}{2em} Qty}&
|
||||
\multicolumn {1}{p{13cm}|[2pt]}{ Description} \\ \tabucline[2pt]{1-2}
|
||||
%%% UNIT %%%
|
||||
% Unit name
|
||||
\nodeUnitName{2}{Iris FW1100 - Firewall System}{secondary-brown}{ao-black}
|
||||
% Unit configuration parameters
|
||||
\nodeUnitParameter{ 1U Form Factor ~~- Single Intel Xeon D-1587 CPU }
|
||||
\nodeUnitParameter{ Up to 128GB DDR4 ECC Reg Memory }
|
||||
\nodeUnitParameter{ Dual 10G SFP+ and Six Gigabit Ethernet }
|
||||
\nodeUnitLastParameter{ 400W Platinum Level Redundant Power Supply }
|
||||
% Unit has a set of components parameters
|
||||
\nodeUnitSetItem {2}{ 8GB DDR4 2666MHz ECC Registered DIMM }
|
||||
%\nodeUnitSetItem {1}{ No Operating System. Include testing%
|
||||
% and customer OS preference in notes. }
|
||||
%\nodeUnitSetItem {1}{ Return to Depot Warranty (3 Year Hardware%
|
||||
% Warranty with Standard Advance Parts Replacement) }
|
||||
\nodeUnitSetItem {1}{ 128GB SATA DOM }
|
||||
\nodeUnitSetLastItem {1}{ Intel 10G Dual Port RJ45 Ethernet Adapter }
|
||||
% Unit ends with notes, pass "none" parameter if no notes
|
||||
%\nodeUnitSetNotes { none }
|
||||
%%% END UNIT %%%
|
||||
|
||||
%%% UNIT %%%
|
||||
% Unit name
|
||||
\nodeUnitName{1}{Iris NV2225}{primary-blue}{ao-black}
|
||||
% Unit configuration parameters
|
||||
\nodeUnitParameter{ 2U Form Factor ~~- Dual Intel Xeon SP Processor }
|
||||
\nodeUnitParameter{ Up to 768GB DDR4 2133MHz ECC Registered Memory }
|
||||
\nodeUnitParameter{ Integrated IPMI 2.0 + KVM with dedicated LAN }
|
||||
\nodeUnitParameter{ Intel x550 Quad port 10G Ethernet }
|
||||
\nodeUnitLastParameter{ 1600W Redundant High-efficiency Power Supply }
|
||||
% Unit has a set of components parameters
|
||||
\nodeUnitSetItem{2}{ Intel Xeon Gold 5115 10C 2.4GHz 13.75MB Cache }
|
||||
\nodeUnitSetItem{1}{ 128GB DDR4 2666MHz ECC Reg (4 x 32GB) }
|
||||
\nodeUnitSetItem{1}{ Samsung 960 EVO M.2 NVME SSD 500GB }
|
||||
\nodeUnitSetItem{4}{ Ultrastar SN200 800GB NVMe SSD }
|
||||
%\nodeUnitSetItem{1}{ No Operating System. Include testing and customer%
|
||||
% OS preference in notes. }
|
||||
%\nodeUnitSetItem{1}{ Return to Depot Warranty (3 Year Hardware Warranty%
|
||||
% with Standard Advance Parts Replacement) }
|
||||
\nodeUnitSetLastItem{1}{ Intel 10G Dual Port RJ45 Ethernet Adapter }
|
||||
% Unit ends with notes, pass "none" parameter if no notes
|
||||
%\nodeUnitSetNotes { none }
|
||||
%%% END UNIT %%%
|
||||
|
||||
%%% UNIT %%%
|
||||
% Unit name
|
||||
\nodeUnitName{2}{Iris 1292-R4T}{primary-brown}{ao-black}
|
||||
% Unit configuration parameters
|
||||
\nodeUnitParameter{ 1U Form Factor ~~- Dual Intel Xeon SP Processors }
|
||||
\nodeUnitParameter{ Intel C620 Chipset with QPI up to 9.6GT/sec }
|
||||
\nodeUnitParameter{ Up to 768GB DDR4 2666MHz ECC Registered Memory }
|
||||
\nodeUnitParameter{ Integrated IPMI 2.0 + KVM with dedicated LAN }
|
||||
\nodeUnitParameter{ Intel Quad-port 10GBaseT Ethernet Controller }
|
||||
\nodeUnitParameter{ 4 x 3.5'' Hot-swap Drive Bays For customizable Storage }
|
||||
\nodeUnitLastParameter{ 750W Redundant Power Supply }
|
||||
% Unit has a set of components parameters
|
||||
\nodeUnitSetItem{2}{ Intel Xeon Silver 4110 8C 2.1GHz 11MB Cache }
|
||||
\nodeUnitSetItem{1}{ 128GB DDR4 2666MHz ECC Reg (8 x 16GB) }
|
||||
\nodeUnitSetItem{4}{ HGST Ultrastar 6TB 7200RPM SATA 6Gb/s }
|
||||
%\nodeUnitSetItem{1}{ No Operating System. Include testing and customer%
|
||||
% OS preference in notes. }
|
||||
%\nodeUnitSetItem{1}{ Return to Depot Warranty (3 Year Hardware Warranty%
|
||||
% with Standard Advance Parts Replacement) }
|
||||
\nodeUnitSetLastItem{1}{ Intel 10G Dual Port RJ45 Ethernet Adapter }
|
||||
% Unit ends with notes, pass "none" parameter if no notes
|
||||
%\nodeUnitSetNotes { none }
|
||||
%%% END UNIT %%%
|
||||
|
||||
%%% UNIT %%%
|
||||
% Unit name
|
||||
\nodeUnitName{2}{Iris NV1211}{nonbrand-dark-blue}{ao-white}
|
||||
% Unit configuration parameters
|
||||
\nodeUnitParameter{ 1U Form Factor ~~- Dual Intel Xeon SP Processor }
|
||||
\nodeUnitParameter{ Up to 1534GB DDR4 2400MHz ECC Registered Memory }
|
||||
\nodeUnitParameter{ Integrated IPMI 2.0 + KVM with dedicated LAN }
|
||||
\nodeUnitParameter{ Intel x540 Dual-port 10Gigabit Ethernet }
|
||||
\nodeUnitParameter{ 10 x 2.5'' Solid State NVMe Disks }
|
||||
\nodeUnitLastParameter{ 1000W Redundant High-efficiency Power Supply }
|
||||
% Unit has a set of components parameters
|
||||
\nodeUnitSetItem{2}{ Intel Xeon Silver 4114 10C 2.2GHz 13.75MB Cache }
|
||||
\nodeUnitSetItem{1}{ 64GB DDR4 2666MHz ECC Reg (4 x 16GB) }
|
||||
\nodeUnitSetItem{1}{ Samsung 960 EVO M.2 NVME SSD 500GB }
|
||||
\nodeUnitSetItem{6}{ Ultrastar SN200 800GB NVMe SSD }
|
||||
% \nodeUnitSetItem{1}{ No Operating System. Include testing and customer%
|
||||
% OS preference in notes. }
|
||||
% \nodeUnitSetItem{1}{ Return to Depot Warranty (3 Year Hardware Warranty%
|
||||
% with Standard Advance Parts Replacement) }
|
||||
\nodeUnitSetLastItem{1}{ Intel X710 Converged Network Adapter Quad-port 10GBaseT }
|
||||
% Unit ends with notes, pass "none" parameter if no notes
|
||||
%\nodeUnitSetNotes { none }
|
||||
%%% END UNIT %%%
|
||||
|
||||
\end{tabu}
|
||||
\end{table}
|
||||
|
||||
Notes applicable to all units:
|
||||
|
||||
{ 1. No Operating System. Include testing and customer OS preference in notes. }
|
||||
|
||||
{ 2. Return to Depot Warranty (3 Year Hardware Warranty with Standard Advance Parts Replacement) }
|
||||
|
||||
\newpage
|
||||
|
||||
\section{GNU/Linux Servers}
|
||||
The servers will all run Debian GNU/Linux
|
||||
|
||||
\subsection{Denver Server List}
|
||||
\begin{itemize}
|
||||
\item \texttt{oc1.forksand.com} --- KVM host.
|
||||
\item \texttt{rd1.forksand.com} --- Misc.
|
||||
\end{itemize}
|
||||
|
||||
\vspace{10mm}
|
||||
|
||||
\texttt{\qquad oc1.forksand.com parameters}
|
||||
\begin{minted}{sh}
|
||||
Full Network:
|
||||
70.39.125.64/27 Network
|
||||
70.39.125.65 Gateway
|
||||
70.39.125.66 AVAILABLE
|
||||
70.39.125.94 AVAILABLE
|
||||
70.39.125.95 Broadcast
|
||||
255.255.255.224 Netmask
|
||||
|
||||
Break the main IP into a /30
|
||||
|
||||
# Main network interface
|
||||
# 2 IPs
|
||||
70.39.125.64/30 Network
|
||||
70.39.125.65 Gateway
|
||||
70.39.125.66 oc1
|
||||
70.39.125.67 Broadcast
|
||||
255.255.255.252 Netmask
|
||||
|
||||
# vmbr0 Bridge 0 with 2 IPs
|
||||
70.39.125.68/30 Network
|
||||
70.39.125.69 vmbr0 gateway
|
||||
70.39.125.70 AVAILABLE
|
||||
70.39.125.71 Broadcast
|
||||
255.255.255.252 Netmask
|
||||
|
||||
# vmbr1 Bridge 1 with 6 IPs
|
||||
70.39.125.72/29 Network
|
||||
70.39.125.73 vmbr1 gateway
|
||||
70.39.125.74 AVAILABLE
|
||||
70.39.125.76 test99
|
||||
70.39.125.78 AVAILABLE
|
||||
70.39.125.79 Broadcast
|
||||
255.255.255.248 Netmask
|
||||
|
||||
# vmbr2 Bridge 2 with 14 IPs
|
||||
70.39.125.80/28 Network
|
||||
70.39.125.81 vmbr2 gateway
|
||||
70.39.125.92 AVAILABLE
|
||||
70.39.125.94 AVAILABLE
|
||||
70.39.125.95 Broadcast
|
||||
255.255.255.240 Netmask
|
||||
\end{minted}
|
||||
|
||||
\newpage
|
||||
|
||||
\texttt{\qquad rd1.forksand.com parameters}
|
||||
\begin{minted}{sh}
|
||||
Full Network:
|
||||
174.128.229.128/27 Network
|
||||
174.128.229.129 Gateway
|
||||
174.128.229.130 Main rd1 IP
|
||||
174.128.229.131 AVAILABLE
|
||||
174.128.229.158 AVAILABLE
|
||||
174.128.229.159 Broadcast
|
||||
255.255.255.224 Netmask
|
||||
|
||||
Break the main network into a /30
|
||||
|
||||
# Main network interface
|
||||
# 2 IPs
|
||||
174.128.229.128/30 Network
|
||||
174.128.229.129 Gateway
|
||||
174.128.229.130 oc1
|
||||
174.128.229.131 Broadcast
|
||||
255.255.255.252 Netmask
|
||||
|
||||
# vmbr0 Bridge 0 with 2 IPs
|
||||
174.128.229.132/30 Network
|
||||
174.128.229.133 vmbr0 gateway
|
||||
174.128.229.134 AVAILABLE
|
||||
174.128.229.135 Broadcast
|
||||
255.255.255.252 Netmask
|
||||
|
||||
# vmbr1 Bridge 1 with 6 IPs
|
||||
174.128.229.136/29 Network
|
||||
174.128.229.137 vmbr1 gateway
|
||||
174.128.229.138 AVAILABLE
|
||||
174.128.229.140 test99
|
||||
174.128.229.142 AVAILABLE
|
||||
174.128.229.143 Broadcast
|
||||
255.255.255.248 Netmask
|
||||
|
||||
# vmbr2 Bridge 2 with 14 IPs
|
||||
174.128.229.144/28 Network
|
||||
174.128.229.145 vmbr2 gateway
|
||||
174.128.229.156 AVAILABLE
|
||||
174.128.229.158 AVAILABLE
|
||||
174.128.229.159 Broadcast
|
||||
255.255.255.240 Netmask
|
||||
\end{minted}
|
||||
|
||||
\section{Network Hardware}
|
||||
The network switches do not run free software.
|
||||
|
||||
\section{Disk Drives}
|
||||
The disk drives do not run free software.
|
||||
|
||||
\begin{itemize}
|
||||
\item Hard drive platters, 7200 RPM, 2.5'' and 3.5''
|
||||
\item SSD
|
||||
\item NVMe
|
||||
\end{itemize}
|
||||
|
||||
\section{Suppliers}
|
||||
Who we'll get hardware from.
|
||||
|
||||
\begin{itemize}
|
||||
\item Pogo Linux --- Debian GNU/Linux Servers, USA.
|
||||
\item Viking.net --- Coreboot Opteron servers in Germany.
|
||||
\item raptorcs.com --- POWER9, custom Coreboot systems (?), USA.
|
||||
\end{itemize}
|
||||
|
||||
\newcommand{\includescreen}[3]{
|
||||
\begin{figure}[!ht]
|
||||
\includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]{#1}
|
||||
\caption{#2}
|
||||
#3
|
||||
\end{figure}
|
||||
}
|
||||
|
||||
\section{Shark nodes configuration. Using an example Shark2}
|
||||
|
||||
%\includescreen{shark2/01.png}{Log in to admin-webview}{}
|
||||
\includescreen{shark2/02.png}{Log in to admin-webview}{\label{fig:shark2login}}
|
||||
%\includescreen{shark2/03.png}{Logged in to admin-webview. Notification of no valid subscription}{}
|
||||
%\includescreen{shark2/04.png}{Browse Datacenter, log hidden}{\label{fig:shark2browsedatacenter}}
|
||||
%\includescreen{shark2/05.png}{Browse shark2 Node}{\label{fig:shark2browsenode}}
|
||||
\includescreen{shark2/06.png}{Browse shark2 Network}{\label{fig:shark2network}}
|
||||
%\includescreen{shark2/07.png}{Select first shark2 Network device}{}
|
||||
\includescreen{shark2/08.png}{Edit first shark2 Network device}{}
|
||||
\includescreen{shark2/09.png}{Cleanup first shark2 Network device}{\label{fig:shark2cleanupnetdevice1}}
|
||||
\includescreen{shark2/10.png}{Browse shark2 Network}{}
|
||||
\includescreen{shark2/11.png}{Create shark2 Linux Bridge}{\label{fig:shark2linuxbridge}}
|
||||
%\includescreen{shark2/12.png}{Create shark2 Linux Bridge}{}
|
||||
\includescreen{shark2/13.png}{Create shark2 Linux Bridge}{}
|
||||
\begin{table}[!htb]
|
||||
\caption{IP configs of nodes} \label{tab:sharkNodeIPConfig}
|
||||
\begin{tabular}{|l|l|l|l|}
|
||||
\hline
|
||||
\multicolumn {1}{|l|}{ Parameter}&
|
||||
\multicolumn {1}{l|}{ Shark2}&
|
||||
\multicolumn {1}{l|}{ Shark3}&
|
||||
\multicolumn {1}{l|}{ Shark4} \\ \hline
|
||||
Linux bridge & & & \\ %\hline
|
||||
Name & vmbr0 & vmbr0 & vmbr0 \\ %\hline
|
||||
IP address & 174.128.229.130 & 70.39.103.218 & 70.39.103.210 \\ %\hline
|
||||
Subnet mask & 255.255.255.224 & 255.255.255.248 & 255.255.255.248 \\ %\hline
|
||||
Gateway & 174.128.229.129 & 70.39.103.217 & 70.39.103.209 \\ %\hline
|
||||
Bridge ports & enp2s0 & enp3s0 & enp3s0 \\ \hline
|
||||
|
||||
Network Device & & & \\ %\hline
|
||||
Name & enp3s0 & enp4s0 & enp4s0 \\ %\hline
|
||||
IP address & 10.2.2.2 & 10.2.2.3 & 10.2.2.4 \\ %\hline
|
||||
Subnet mask & 255.255.255.0 & 255.255.255.0 & 255.255.255.0 \\ \hline
|
||||
|
||||
Network Device & & & \\ %\hline
|
||||
Name & enp4s0 & enp5s0 & enp5s0 \\ %\hline
|
||||
IP address & 10.99.99.2 & 10.99.99.3 & 10.99.99.4 \\ %\hline
|
||||
Subnet mask & 255.255.255.0 & 255.255.255.0 & 255.255.255.0 \\ \hline
|
||||
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
\includescreen{shark2/14.png}{Browse shark2 Network}{}
|
||||
%\includescreen{shark2/15.png}{Select second shark2 Network device}{}
|
||||
%\includescreen{shark2/16.png}{Edit second shark2 Network device}{}
|
||||
\includescreen{shark2/17.png}{Edit second on the list shark2 Network device}{}
|
||||
%\includescreen{shark2/18.png}{Browse shark2 Network}{}
|
||||
%\includescreen{shark2/19.png}{Select third shark2 Network device}{}
|
||||
%\includescreen{shark2/20.png}{Edit third shark2 Network device}{}
|
||||
\includescreen{shark2/21.png}{Edit third on the list shark2 Network device}{}
|
||||
\begin{table}[!htb]
|
||||
\caption{IP configs of nodes, duplicate of table \ref{tab:sharkNodeIPConfig}} % \label{tab:sharkLinuxBridge}
|
||||
\begin{tabular}{|l|l|l|l|}
|
||||
\hline
|
||||
\multicolumn {1}{|l|}{ Parameter}&
|
||||
\multicolumn {1}{l|}{ Shark2}&
|
||||
\multicolumn {1}{l|}{ Shark3}&
|
||||
\multicolumn {1}{l|}{ Shark4} \\ \hline
|
||||
Linux bridge & & & \\ %\hline
|
||||
Name & vmbr0 & vmbr0 & vmbr0 \\ %\hline
|
||||
IP address & 174.128.229.130 & 70.39.103.218 & 70.39.103.210 \\ %\hline
|
||||
Subnet mask & 255.255.255.224 & 255.255.255.248 & 255.255.255.248 \\ %\hline
|
||||
Gateway & 174.128.229.129 & 70.39.103.217 & 70.39.103.209 \\ %\hline
|
||||
Bridge ports & enp2s0 & enp3s0 & enp3s0 \\ \hline
|
||||
|
||||
Network Device & & & \\ %\hline
|
||||
Name & enp3s0 & enp4s0 & enp4s0 \\ %\hline
|
||||
IP address & 10.2.2.2 & 10.2.2.3 & 10.2.2.4 \\ %\hline
|
||||
Subnet mask & 255.255.255.0 & 255.255.255.0 & 255.255.255.0 \\ \hline
|
||||
|
||||
Network Device & & & \\ %\hline
|
||||
Name & enp4s0 & enp5s0 & enp5s0 \\ %\hline
|
||||
IP address & 10.99.99.2 & 10.99.99.3 & 10.99.99.4 \\ %\hline
|
||||
Subnet mask & 255.255.255.0 & 255.255.255.0 & 255.255.255.0 \\ \hline
|
||||
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
\includescreen{shark2/22.png}{Browse shark2 Network}{}
|
||||
%\includescreen{shark2/23.png}{Browse shark2 node}{}
|
||||
\includescreen{shark2/24.png}{Restart shark2 node}{}
|
||||
|
||||
%\clearpage % avoid LaTeX Error: Too many unprocessed floats.
|
||||
%\section{Shark3 configuration}
|
||||
%
|
||||
%\includescreen{shark3/01.png}{Log in to admin-webview}{\label{fig:shark3login}}
|
||||
%\includescreen{shark3/02.png}{Logged in to admin-webview. Notification of no valid subscription}{}
|
||||
%\includescreen{shark3/03.png}{Browse Datacenter, log hidden}{\label{fig:shark3browsedatacenter}}
|
||||
%\includescreen{shark3/04.png}{Browse Shark3 Node}{\label{fig:shark3browsenode}}
|
||||
%\includescreen{shark3/05.png}{Shark3 Network}{\label{fig:shark3network}}
|
||||
%\includescreen{shark3/06.png}{Browse Shark3 Network}{}
|
||||
%\includescreen{shark3/07.png}{Select first Shark3 Network device}{}
|
||||
%\includescreen{shark3/08.png}{Edit first Shark3 Network device}{}
|
||||
%\includescreen{shark3/09.png}{Cleanup first Shark3 Network device}{\label{fig:shark3cleanupnetdevice1}}
|
||||
%\includescreen{shark3/10.png}{Create Shark3 Linux Bridge}{\label{fig:shark3linuxbridge}}
|
||||
%\includescreen{shark3/11.png}{Create Shark3 Linux Bridge}{}
|
||||
%\includescreen{shark3/12.png}{Create Shark3 Linux Bridge}{}
|
||||
%\includescreen{shark3/13.png}{Create Shark3 Linux Bridge}{}
|
||||
%\includescreen{shark3/14.png}{Select second Shark3 Network device}{}
|
||||
%\includescreen{shark3/15.png}{Edit second Shark3 Network device}{}
|
||||
%\includescreen{shark3/16.png}{Edit second Shark3 Network device}{}
|
||||
%\includescreen{shark3/17.png}{Select third Shark3 Network device}{}
|
||||
%\includescreen{shark3/18.png}{Edit third Shark3 Network device}{}
|
||||
%\includescreen{shark3/19.png}{Edit third Shark3 Network device}{}
|
||||
%\includescreen{shark3/20.png}{Edit third Shark3 Network device}{}
|
||||
%\includescreen{shark3/21.png}{Browse Shark3 node}{}
|
||||
%\includescreen{shark3/22.png}{Restart Shark3 node}{}
|
||||
%
|
||||
%\clearpage % avoid LaTeX Error: Too many unprocessed floats.
|
||||
%\section{Shark4 configuration}
|
||||
%
|
||||
%
|
||||
%\includescreen{shark4/01.png}{Log in to admin-webview}{}
|
||||
%\includescreen{shark4/02.png}{Log in to admin-webview}{\label{fig:shark4login}}
|
||||
%\includescreen{shark4/03.png}{Browse Datacenter}{\label{fig:shark4browsedatacenter}}
|
||||
%\includescreen{shark4/04.png}{Browse Datacenter, log hidden}{}
|
||||
%\includescreen{shark4/05.png}{Browse Shark4 Node}{\label{fig:shark4browsenode}}
|
||||
%\includescreen{shark4/06.png}{Shark4 Network}{\label{fig:shark4network}}
|
||||
%\includescreen{shark4/07.png}{Select first Shark4 Network device}{}
|
||||
%\includescreen{shark4/08.png}{Edit first Shark4 Network device}{}
|
||||
%\includescreen{shark4/09.png}{Cleanup first Shark4 Network device}{\label{fig:shark4cleanupnetdevice1}}
|
||||
%\includescreen{shark4/10.png}{Create Shark4 Linux Bridge}{\label{fig:shark4linuxbridge}}
|
||||
%\includescreen{shark4/11.png}{Create Shark4 Linux Bridge}{}
|
||||
%\includescreen{shark4/12.png}{Select second Shark4 Network device}{}
|
||||
%\includescreen{shark4/13.png}{Select second Shark4 Network device}{}
|
||||
%\includescreen{shark4/14.png}{Edit second Shark4 Network device}{}
|
||||
%\includescreen{shark4/15.png}{Edit second Shark4 Network device}{}
|
||||
%\includescreen{shark4/16.png}{Select second Shark4 Network device}{}
|
||||
%\includescreen{shark4/17.png}{Edit second Shark4 Network device}{}
|
||||
%\includescreen{shark4/18.png}{Edit second Shark4 Network device}{}
|
||||
%\includescreen{shark4/19.png}{Restart Shark4 node}{}
|
||||
|
@ -1,197 +0,0 @@
|
||||
%
|
||||
% OpenNebula.tex
|
||||
%
|
||||
% Fork Sand IT Manual
|
||||
%
|
||||
% Copyright (C) 2018, Fork Sand, Inc.
|
||||
% Copyright (C) 2017, Jeff Moe
|
||||
% Copyright (C) 2017 Aleph Objects, Inc.
|
||||
%
|
||||
% This document is licensed under the Creative Commons Attribution 4.0
|
||||
% International Public License (CC BY-SA 4.0) by Fork Sand, Inc.
|
||||
%
|
||||
% XXX TODO: opennebula-sunstone-login.png
|
||||
|
||||
\section{Overview}
|
||||
OpenNebula is a virtual machine manager.
|
||||
|
||||
The private cloud deployment will be based on OpenNebula version 5.4, which
|
||||
is currently in beta. There are only Debian 8 (Jessie, oldstable) releases.
|
||||
Debian hasn't packaged OpenNebula since wheezy. It has it in sid, but even
|
||||
that is an old version. The only packages available for Debian are the
|
||||
upstream ones for Jessie made by OpenNebula. UPDATE: although it isn't listed
|
||||
on their website, it does appear their are Debian 9 (Stretch) builds of
|
||||
OpenNebula for the betas of the forthcoming 5.4 version, which is great.
|
||||
|
||||
Documentation:
|
||||
\url{https://docs.opennebula.org/5.4/}
|
||||
|
||||
\begin{figure}[h!]
|
||||
\includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]{www-opennebula.png}
|
||||
\caption{OpenNebula Website}
|
||||
\label{fig:www-opennebula}
|
||||
\end{figure}
|
||||
|
||||
\begin{itemize}
|
||||
\item Website: \\ \url{https://opennebula.org/}
|
||||
\item Debian Stretch Repo: \\
|
||||
\url{http://downloads.opennebula.org/repo/5.4/Debian/9/pool/opennebula/}
|
||||
\end{itemize}
|
||||
|
||||
|
||||
The following servers will be deployed to host OpenNebula and the KVMs:
|
||||
|
||||
\begin{itemize}
|
||||
\item \texttt{waz-kvm-001.forksand.com} --- Virtual Machine Server 1
|
||||
\item \texttt{waz-kvm-002.forksand.com} --- Virtual Machine Server 2
|
||||
\item \texttt{waz-kvm-003.forksand.com} --- Virtual Machine Server 3
|
||||
\item \texttt{waz-kvm-004.forksand.com} --- Virtual Machine Server 4
|
||||
\item \texttt{waz-kvm-005.forksand.com} --- Virtual Machine Server 5
|
||||
\item \texttt{waz-sun-001.forksand.com} --- OpenNebula Sunstone Web GUI 1
|
||||
\item \texttt{waz-sun-002.forksand.com} --- OpenNebula Sunstone Web GUI 2
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Virtual Machine Servers}
|
||||
KVM virtual machine servers. Fast CPU, with lots of RAM. Uses Ceph to store
|
||||
virtual images.
|
||||
|
||||
\subsection{Sunstone Web GUI Servers}
|
||||
Sunstone is OpenNebula's Web GUI for administration of the cluster.
|
||||
|
||||
\begin{figure}[h!]
|
||||
\includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]{opennebula-sunstone.png}
|
||||
\caption{OpenNebula Sunstone Web Admin GUI}
|
||||
\label{fig:opennebula-sunstone}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\begin{minted}{sh}
|
||||
wget -q -O- https://downloads.opennebula.org/repo/repo.key | apt-key add -
|
||||
echo "deb http://downloads.opennebula.org/repo/5.4/Debian/9 stable opennebula" > /etc/apt/sources.list.d/opennebula.list
|
||||
apt update
|
||||
apt -y install opennebula-node
|
||||
service libvirtd restart
|
||||
\end{minted}
|
||||
|
||||
|
||||
\section{Bugs}
|
||||
Things that are bugs or at least aren't configured correctly.
|
||||
|
||||
|
||||
\section{Sunstone Configuration}
|
||||
At this point, you should have the OpenNebula Sunstone server up and running.
|
||||
See scripts in \texttt{source/resources/ns24} for automation.
|
||||
|
||||
\begin{enumerate}
|
||||
\item Set up ssh tunnel (use Sunstone server name for ns24):
|
||||
Code: \\ \texttt{ssh -N -C -L 9869:localhost:9869 ns24}
|
||||
\item In workstation, open browser to url:
|
||||
URL: \\ \url{http://localhost:9869/}
|
||||
Info: \\ This goes through the encrypted SSH tunnel, but doesn't use https.
|
||||
\item Click \texttt{OpenNebula} in the upper right to get the full web console.
|
||||
\item Click \texttt{Infrastructure}.
|
||||
\item Click \texttt{Hosts}.
|
||||
\item Click The \texttt{+} plus icon.
|
||||
\item Enter the hostname of the KVM server you want to use, such as the Sunstone server itself.
|
||||
\texttt{Type: KVM}
|
||||
\texttt{Hostname: ns24}
|
||||
\item Click \texttt{Create}.
|
||||
\item Repeatedly hit the reload button that's the two arrows in a circle, as it goes thru
|
||||
stages of setup, starting at \texttt{INIT}.
|
||||
\item Confirm status is \texttt{ON}.
|
||||
\end{enumerate}
|
||||
|
||||
\section{Sunstone Deploy Image}
|
||||
This is a quick and dirty way to deploy a first test image.
|
||||
NOTE: It is note privacy aware, as it pulls the image from the
|
||||
OpenNebula ``store''.
|
||||
|
||||
How to deploy an image from the OpenNebula App store:
|
||||
\begin{enumerate}
|
||||
\item Click \texttt{Storage}.
|
||||
\item Click \texttt{Apps}
|
||||
\item Click \texttt{Debian 9 - KVM}.
|
||||
\item Click on the icon that is a cloud with an arrow in it. This downloads it to OpenNebula.
|
||||
\item Select a datastore by clicking the \texttt{default} line.
|
||||
\item Leave name and all that the same, and click \texttt{Download}.
|
||||
\item Click \texttt{Images} under \texttt{Storage} in the left column.
|
||||
\item Hit the refresh icon repeatedly.
|
||||
\item When \texttt{Status} is \texttt{READY}, it is good to go.
|
||||
\item Click \texttt{Templates} in the left column.
|
||||
\item Click \texttt{VMs}.
|
||||
\item Click \texttt{Debian 9 - KVM}.
|
||||
\item Click \texttt{Instantiate}.
|
||||
\item \texttt{VM Name} enter \texttt{deb9}.
|
||||
\item \texttt{Number of instances} enter \texttt{1}.
|
||||
\item \texttt{Memory} enter \texttt{768}.
|
||||
\item \texttt{CPU} enter \texttt{1}.
|
||||
\item Click the slider to \texttt{Instantiate as persistent}.
|
||||
\item Click \texttt{Instantiate}.
|
||||
\item Click \texttt{Instances} in the left column.
|
||||
\item Click \texttt{VMs}.
|
||||
\item Click the reload icon, repeat.
|
||||
\item It is good when \texttt{Status} is \texttt{RUNNING}.
|
||||
\item Set up an \texttt{ssh} tunnel so VNC can be used:
|
||||
\texttt{ssh -N -C -L 29876:localhost:29876 ns24}
|
||||
\item Click on the little monitor icon to launch VNC.
|
||||
\item Look at booted up screen at \texttt{login:} prompt.
|
||||
\item This means a Debian KVM booted up and the VNC is working.
|
||||
There is no password for the \texttt{root} account, only \texttt{ssh} is available.
|
||||
So without network setup, you can't really do anything with this image.
|
||||
Booted, it just shows it works.
|
||||
\end{enumerate}
|
||||
|
||||
I think delete this section, it would go before the \texttt{Templates} above.:
|
||||
\begin{enumerate}
|
||||
\item Click \texttt{Debian 9 - KVM}.
|
||||
\item PROBABLY NO: Click \texttt{Clone} to make a local copy.
|
||||
\item PROBABLY NO: It will say \texttt{Copy of Debian 9 - KVM}, leave as-is, click \texttt{Clone}.
|
||||
\item Click on the icon with three dots.
|
||||
\item Click \texttt{Make Persistent}.
|
||||
\item Click on the icon with three dots.
|
||||
\item Click \texttt{Enable}.
|
||||
\end{enumerate}
|
||||
|
||||
\section{OpenNebula Networking}
|
||||
XXX Yes, this part needs set up...
|
||||
|
||||
\begin{minted}{sh}
|
||||
# /etc/network/interfaces bridge section, add this:
|
||||
auto br0
|
||||
iface br0 inet static
|
||||
bridge_ports eth0
|
||||
bridge_fd 0
|
||||
address 192.168.100.1
|
||||
netmask 255.255.255.0
|
||||
network 192.168.100.0
|
||||
broadcast 192.168.100.255
|
||||
gateway 192.168.100.1
|
||||
dns-nameservers 37.235.1.174
|
||||
dns-search forksand.com
|
||||
\end{minted}
|
||||
|
||||
As user \texttt{jebba}, on the server, run this to generate a key.
|
||||
Then paste that key into Sunstone under "SSH Public Key".
|
||||
|
||||
\begin{minted}{sh}
|
||||
ssh-keygen -t ed25519
|
||||
\end{minted}
|
||||
|
||||
\begin{minted}{sh}
|
||||
# XXX test. Use this IP and interface, so no 192.168.0.0 but real IPs.
|
||||
# Comment this out:
|
||||
auto eth0:27
|
||||
iface eth0:27 inet static
|
||||
address 174.128.229.158
|
||||
netmask 255.255.255.224
|
||||
gateway 174.128.229.129
|
||||
\end{minted}
|
||||
|
||||
XXX Check if IP forwarding is needed in \texttt{/etc/sysctl.conf}.
|
||||
|
||||
If things are set up to use a bridge and 192.168.100.100,
|
||||
\texttt{iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE}
|
||||
Will bring things up to NAT.
|
||||
|
||||
|
||||
XXX The port forwarding is forwarding all port 53 to guest at the moment.
|
@ -0,0 +1,230 @@
|
||||
%
|
||||
% Proxmox.tex
|
||||
%
|
||||
% Fork Sand IT Manual
|
||||
%
|
||||
% Copyright (C) 2018, Fork Sand, Inc.
|
||||
% Copyright (C) 2017, Jeff Moe
|
||||
% Copyright (C) 2017 Aleph Objects, Inc.
|
||||
%
|
||||
% This document is licensed under the Creative Commons Attribution 4.0
|
||||
% International Public License (CC BY-SA 4.0) by Fork Sand, Inc.
|
||||
%
|
||||
% XXX TODO: Proxmox-GUI-login.png
|
||||
|
||||
\section{Overview}
|
||||
Proxmox is a virtual machine manager.
|
||||
|
||||
The private cloud deployment will be based on Proxmox version 5.x.
|
||||
%There are only Debian 8 (Jessie, oldstable) releases.
|
||||
%Debian hasn't packaged Proxmox since wheezy. It has it in sid, but even
|
||||
%that is an old version. The only packages available for Debian are the
|
||||
%upstream ones for Jessie made by Proxmox.
|
||||
UPDATE: although Proxmox isn't listed on Debian 9 (Stretch) packages,
|
||||
there is an installation manual for 5.x version, which is great.
|
||||
|
||||
Documentation:
|
||||
\url{https://pve.proxmox.com/wiki/Documentation}
|
||||
|
||||
\begin{figure}[h!]
|
||||
\includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]{www-proxmox.png}
|
||||
\caption{Proxmox Website}
|
||||
\label{fig:www-proxmox}
|
||||
\end{figure}
|
||||
|
||||
\begin{itemize}
|
||||
\item Website: \\ \url{https://proxmox.com/}
|
||||
\item Debian Stretch Repo: \\
|
||||
\url{http://downloads.Proxmox.com/repo/5.4/Debian/9/pool/Proxmox/}
|
||||
\end{itemize}
|
||||
|
||||
|
||||
The following servers will be deployed to host Proxmox and the KVMs:
|
||||
|
||||
\begin{itemize}
|
||||
%\item \texttt{waz-kvm-001.forksand.com}
|
||||
%\item \texttt{waz-kvm-002.forksand.com} --- Virtual Machine Server 2
|
||||
%\item \texttt{waz-kvm-003.forksand.com} --- Virtual Machine Server 3
|
||||
%\item \texttt{waz-kvm-004.forksand.com} --- Virtual Machine Server 4
|
||||
%\item \texttt{waz-kvm-005.forksand.com} --- Virtual Machine Server 5
|
||||
%\item \texttt{waz-sun-001.forksand.com} --- Proxmox Web GUI 1
|
||||
%\item \texttt{waz-sun-002.forksand.com} --- Proxmox Web GUI 2
|
||||
\item \texttt{forksand-hk1} --- Virtual Machine Node 1
|
||||
\item \texttt{forksand-hk2} --- Virtual Machine Node 2
|
||||
\item \texttt{forksand-hk3} --- Virtual Machine Node 3
|
||||
\item \texttt{\textcolor[rgb]{0.80,0.00,0.00}{forksand-shark1}} \textcolor[rgb]{0.80,0.00,0.00}{--- Virtual Machine Node ?}
|
||||
\item \texttt{forksand-shark2} --- Virtual Machine Node 4
|
||||
\item \texttt{forksand-shark3} --- Virtual Machine Node 5
|
||||
\item \texttt{forksand-shark4} --- Virtual Machine Node 6
|
||||
\item \texttt{forksand-the} --- Virtual Machine Node 7
|
||||
\item \texttt{forksand-truck} --- Virtual Machine Node 8
|
||||
\end{itemize}
|
||||
|
||||
%\subsection{Virtual Machine Servers}
|
||||
%KVM virtual machine servers. Fast CPU, with lots of RAM. Uses Ceph to store
|
||||
%virtual images.
|
||||
%
|
||||
%\subsection{Proxmox Web GUI Servers}
|
||||
%A Proxmox's Web GUI for administration of the cluster.
|
||||
|
||||
\subsection{Virtual Machine Nodes}
|
||||
Virtual machine nodes. Fast CPU, with lots of RAM. Uses Ceph to store
|
||||
virtual images.
|
||||
|
||||
Every node includes a Proxmox's Web GUI for administration of the cluster.
|
||||
\textcolor[rgb]{0.80,0.00,0.00}{Todo clarify}
|
||||
|
||||
|
||||
\begin{figure}[h!]
|
||||
\includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]{proxmox-gui.png}
|
||||
\caption{Proxmox Sunstone Web Admin GUI}
|
||||
\label{fig:proxmox-gui}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\begin{minted}{sh}
|
||||
echo "deb http://download.proxmox.com/debian/pve stretch pve-no-subscription" \
|
||||
> /etc/apt/sources.list.d/pve-install-repo.list
|
||||
wget http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg \
|
||||
-O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg
|
||||
apt-get update
|
||||
apt-get -y dist-upgrade --download-only
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -y \
|
||||
-o Dpkg::Options::="--force-confdef" \
|
||||
-o Dpkg::Options::="--force-confnew" dist-upgrade
|
||||
apt-get -y install ksm-control-daemon proxmox-veupdate-grub
|
||||
apt remove os-prober
|
||||
\end{minted}
|
||||
|
||||
\section{Bugs}
|
||||
Things that are bugs or at least aren't configured correctly.
|
||||
|
||||
\section{GUI Configuration}
|
||||
At this point, you should have the Proxmox server up and running.
|
||||
|
||||
\textcolor[rgb]{0.80,0.00,0.00}{
|
||||
Todo check related, modify/replace unrelated
|
||||
}
|
||||
|
||||
\begin{minted}{sh}
|
||||
See scripts in \texttt{source/resources/ns24} for automation.
|
||||
|
||||
\begin{enumerate}
|
||||
\item Set up Linux Bridge (use Sunstone server name for ns24):
|
||||
Code: \\ \texttt{ssh -N -C -L 9869:localhost:9869 ns24}
|
||||
\item In workstation, open browser to url:
|
||||
URL: \\ \url{http://localhost:9869/}
|
||||
Info: \\ This goes through the encrypted SSH tunnel, but doesn't use https.
|
||||
\item Click \texttt{Proxmox} in the upper right to get the full web console.
|
||||
\item Click \texttt{Infrastructure}.
|
||||
\item Click \texttt{Hosts}.
|
||||
\item Click The \texttt{+} plus icon.
|
||||
\item Enter the hostname of the KVM server you want to use, such as the Sunstone server itself.
|
||||
\texttt{Type: KVM}
|
||||
\texttt{Hostname: ns24}
|
||||
\item Click \texttt{Create}.
|
||||
\item Repeatedly hit the reload button that's the two arrows in a circle, as it goes thru
|
||||
stages of setup, starting at \texttt{INIT}.
|
||||
\item Confirm status is \texttt{ON}.
|
||||
\end{enumerate}
|
||||
\end{minted}
|
||||
|
||||
\section{GUI Deploy Image}
|
||||
\textcolor[rgb]{0.80,0.00,0.00}{Todo check related, modify/replace unrelated}
|
||||
\begin{minted}{sh}
|
||||
This is a quick and dirty way to deploy a first test image.
|
||||
NOTE: It is note privacy aware, as it pulls the image from the
|
||||
Proxmox ``store''.
|
||||
\end{minted}
|
||||
|
||||
\textcolor[rgb]{0.80,0.00,0.00}{Todo check related, modify/replace unrelated}
|
||||
\begin{minted}{sh}
|
||||
How to deploy an image from the Proxmox App store:
|
||||
\begin{enumerate}
|
||||
\item Click \texttt{Storage}.
|
||||
\item Click \texttt{Apps}
|
||||
\item Click \texttt{Debian 9 - KVM}.
|
||||
\item Click on the icon that is a cloud with an arrow in it. This downloads it to Proxmox.
|
||||
\item Select a datastore by clicking the \texttt{default} line.
|
||||
\item Leave name and all that the same, and click \texttt{Download}.
|
||||
\item Click \texttt{Images} under \texttt{Storage} in the left column.
|
||||
\item Hit the refresh icon repeatedly.
|
||||
\item When \texttt{Status} is \texttt{READY}, it is good to go.
|
||||
\item Click \texttt{Templates} in the left column.
|
||||
\item Click \texttt{VMs}.
|
||||
\item Click \texttt{Debian 9 - KVM}.
|
||||
\item Click \texttt{Instantiate}.
|
||||
\item \texttt{VM Name} enter \texttt{deb9}.
|
||||
\item \texttt{Number of instances} enter \texttt{1}.
|
||||
\item \texttt{Memory} enter \texttt{768}.
|
||||
\item \texttt{CPU} enter \texttt{1}.
|
||||
\item Click the slider to \texttt{Instantiate as persistent}.
|
||||
\item Click \texttt{Instantiate}.
|
||||
\item Click \texttt{Instances} in the left column.
|
||||
\item Click \texttt{VMs}.
|
||||
\item Click the reload icon, repeat.
|
||||
\item It is good when \texttt{Status} is \texttt{RUNNING}.
|
||||
\item Set up an \texttt{ssh} tunnel so VNC can be used:
|
||||
\texttt{ssh -N -C -L 29876:localhost:29876 ns24}
|
||||
\item Click on the little monitor icon to launch VNC.
|
||||
\item Look at booted up screen at \texttt{login:} prompt.
|
||||
\item This means a Debian KVM booted up and the VNC is working.
|
||||
There is no password for the \texttt{root} account, only \texttt{ssh} is available.
|
||||
So without network setup, you can't really do anything with this image.
|
||||
Booted, it just shows it works.
|
||||
\end{enumerate}
|
||||
|
||||
I think delete this section, it would go before the \texttt{Templates} above.:
|
||||
\begin{enumerate}
|
||||
\item Click \texttt{Debian 9 - KVM}.
|
||||
\item PROBABLY NO: Click \texttt{Clone} to make a local copy.
|
||||
\item PROBABLY NO: It will say \texttt{Copy of Debian 9 - KVM}, leave as-is, click \texttt{Clone}.
|
||||
\item Click on the icon with three dots.
|
||||
\item Click \texttt{Make Persistent}.
|
||||
\item Click on the icon with three dots.
|
||||
\item Click \texttt{Enable}.
|
||||
\end{enumerate}
|
||||
\end{minted}
|
||||
|
||||
\section{Proxmox Networking}
|
||||
Create --> Linux Bridge: vmbr0
|
||||
|
||||
XXX best way for this server? No subnet.
|
||||
|
||||
\textcolor[rgb]{0.80,0.00,0.00}{taken from forksand-shark4-bootstrap}
|
||||
|
||||
\begin{minted}{sh}
|
||||
source /etc/network/interfaces.d/*
|
||||
auto enp1s0f1
|
||||
iface enp1s0f1 inet static
|
||||
address 70.39.103.210/29
|
||||
gateway 70.39.103.209
|
||||
dns-nameservers 208.67.222.222
|
||||
dns-search forksand.com
|
||||
\end{minted}
|
||||
|
||||
As user \texttt{jebba}, on the server, run this to generate a key.
|
||||
Then paste that key into Sunstone under "SSH Public Key".
|
||||
|
||||
\begin{minted}{sh}
|
||||
ssh-keygen -t ed25519
|
||||
\end{minted}
|
||||
|
||||
\begin{minted}{sh}
|
||||
# XXX test. Use this IP and interface, so no 192.168.0.0 but real IPs.
|
||||
# Comment this out:
|
||||
auto eth0:27
|
||||
iface eth0:27 inet static
|
||||
address 174.128.229.158
|
||||
netmask 255.255.255.224
|
||||
gateway 174.128.229.129
|
||||
\end{minted}
|
||||
|
||||
XXX Check if IP forwarding is needed in \texttt{/etc/sysctl.conf}.
|
||||
|
||||
If things are set up to use a bridge and 192.168.100.100,
|
||||
\texttt{iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE}
|
||||
Will bring things up to NAT.
|
||||
|
||||
|
||||
XXX The port forwarding is forwarding all port 53 to guest at the moment.
|