diff --git a/source/Clouds/Flokinet.tex b/source/Clouds/Flokinet.tex index 8c12127..683ac90 100644 --- a/source/Clouds/Flokinet.tex +++ b/source/Clouds/Flokinet.tex @@ -30,7 +30,7 @@ From their About Us: We encourage you to do so! We are able to supply secure and stable environments needed to build submission - and communication platforms.'' -FlokiNET runs Tor exit and relay nodes. +FlokiNET runs \gls{tor} exit and relay nodes. \begin{figure}[!htb] \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]{www-flokinet.png} @@ -124,10 +124,10 @@ This is restricted: \item Anything than can result in Spamhaus listing. \item Phishing Sites / Scam Sites (ex: Ebay/Paypal,CC/Password Scam sites). \item Mailbombers or any sort of spam sites. - \item DDoS originations. + \item \Gls{ddos} originations. \item Spam email. \item Netscan / Hack programs and archives. - \item Malicious Scripts (ex: originate DDoS attacks or hack attempts). + \item Malicious Scripts (ex: originate \gls{ddos} attacks or hack attempts). \item Botnet/Doorway/Carding. \item Childporn. \item Fraud Websites/Forums. @@ -142,20 +142,20 @@ FlokiNET Pros: \item Strong dedication to privacy. \item Based in Iceland. \item \Glspl{dedicatedserver} aren't too expensive. - \item Romanian VPS is OpenVZ and KVM. - \item Finnish VPS is KVM. + \item Romanian VPS is OpenVZ and \gls{kvm}. + \item Finnish VPS is \gls{kvm}. \item Has private domain registration services. \item \Gls{colocation} available. - \item ``FlokiNET is proud to be completly Tor Project logo-friendly. Feel free to host a TOR-node with us!'' - \item ``DDoS mitigation cloud has 950 Gbps filtering capacity.'' + \item ``FlokiNET is proud to be completly \gls{tor} Project logo-friendly. Feel free to host a \gls{tor}-node with us!'' + \item ``\Gls{ddos} mitigation cloud has 950 Gbps filtering capacity.'' \item Finland and Iceland are free speech friendlier countries. \item Has good, optional higher level SLAs that are inexpensive. - \item Has Debian 9 available for KVM. + \item Has Debian 9 available for \gls{kvm}. \item Maximum balance is €15000.00EUR. - \item Strong dedication to Tor. + \item Strong dedication to \gls{tor}. \item Creates apparently random username for login. \item Debian 9 version installed was (nearly) up to date. - \item Uses KVM. + \item Uses \gls{kvm}. \end{itemize} \subsection{FlokiNET Cons} @@ -177,14 +177,14 @@ FlokiNET Cons: USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT is4423 tty1 - 02:24 2:16m 0.17s 0.08s -bash \end{minted} - \item By default in the KVM, they set the nameservers to Google's + \item By default in the \gls{kvm}, they set the nameservers to Google's \texttt{8.8.8.8} and \texttt{8.8.4.4}. -% \item In the KVM, you get a NAT'd IP address, not a real one. +% \item In the \gls{kvm}, you get a NAT'd IP address, not a real one. \end{itemize} \subsection{FlokiNET Unknown} \begin{itemize} - \item IPMI on \glspl{dedicatedserver}? + \item \gls{ipmi} on \glspl{dedicatedserver}? \item The IP in \texttt{/etc/hosts} for the hostname wasn't the same as used for SSH. Either a mistake or \gls{firewall} forwarded for security (???). Appears to be mistake. \end{itemize} diff --git a/source/Clouds/Sharktech.tex b/source/Clouds/Sharktech.tex index 2088846..0d1039c 100644 --- a/source/Clouds/Sharktech.tex +++ b/source/Clouds/Sharktech.tex @@ -10,7 +10,7 @@ % International Public License (CC BY-SA 4.0) by Fork Sand, Inc. % \section{Sharktech} -Sharktech is a provider that focuses on DDoS prevention, such +Sharktech is a provider that focuses on \gls{ddos} prevention, such as for gaming servers. Has a data center in Denver. Looks good. Manually provisions servers over a few days. Good local speed and latency. @@ -29,12 +29,12 @@ Good local speed and latency. \end{figure} First login, kernel is: -\texttt{Linux debian 3.16.0-4-amd64 \#1 SMP Debian 3.16.36-1+deb8u1 (2016-09-03) x86\_64 GNU/Linux} +\texttt{Linux debian 3.16.0-4-amd64 \#1 SMP Debian 3.16.36-1+deb8u1 (2016-09-03) x86\_64 \gls{gnulinux}} It isn't up-to-date. Running Debian 8.6. The \texttt{dmesg} showed the kernel had already barfed a couple times (USB time outs and more). -IPMI http connection is in cleartext!!! Doesn't redirect to https. https has failed SSL -certificate (like every other Supermicro on the planet). IPMI requires Java junk. +\Gls{ipmi} http connection is in cleartext!!! Doesn't redirect to https. https has failed SSL +certificate (like every other Supermicro on the planet). \Gls{ipmi} requires Java junk. Server was running for a few days before I could update it. \begin{minted}{sh} @@ -71,17 +71,17 @@ Firmware Build Time : 2015-01-05 \end{figure} \begin{itemize} - \item Default IPMI connection is in cleartext http. - \item SSL certificate for Supermicro IPMI is bad (like all of them). - \item Can't change password on IPMI. - \item Root password for server and IPMI is sent via email. + \item Default \gls{ipmi} connection is in cleartext http. + \item SSL certificate for Supermicro \gls{ipmi} is bad (like all of them). + \item Can't change password on \gls{ipmi}. + \item Root password for server and \gls{ipmi} is sent via email. \item There is an attack window between their machine imaging and first login. \item Customer should control timing of first power on. \item System is also possibly vuln during the ISP's initial power up and commissioning period. \item First reboot, the system hung (.png XXX). \item Hard reset, lots of DHCP queries at boot. \item A \texttt{debian} user was on the system, password unknown. Check \texttt{/home}! - \item They block NTP to prevent DDoS, so you have to use their time server + \item They block NTP to prevent \gls{ddos}, so you have to use their time server \texttt{time.sharktech.net} \end{itemize} @@ -103,6 +103,6 @@ ns36 server info \begin{itemize} \item Shipped with default kernel: - \texttt{Linux debian 3.16.0-4-amd64 \#1 SMP Debian 3.16.7-ckt20-1+deb8u2 (2016-01-02) x86\_64 GNU/Linux} + \texttt{Linux debian 3.16.0-4-amd64 \#1 SMP Debian 3.16.7-ckt20-1+deb8u2 (2016-01-02) x86\_64 \gls{gnulinux}} \item Shipped with Debian 8.3 (an old version of \texttt{oldstable}). \end{itemize} diff --git a/source/Colophon.tex b/source/Colophon.tex index b3ab295..d7ff27d 100644 --- a/source/Colophon.tex +++ b/source/Colophon.tex @@ -33,7 +33,7 @@ {\tiny Created with 100\% Free Software} \end{minipage}} \put(120,382){\begin{minipage}{357.50793pt}\centering - Debian GNU/Linux + Debian \gls{gnulinux} \end{minipage}} \put(120,370){\begin{minipage}{357.50793pt}\centering {\LaTeX} Memoir diff --git a/source/DNS.tex b/source/DNS.tex index e93a532..2f05ec0 100644 --- a/source/DNS.tex +++ b/source/DNS.tex @@ -77,7 +77,7 @@ of email, as an option. though. \item Fist login page at Njalla ask for a PGP key, if email is to be sent (!). \item Support can be done via Jabber. - \item Tor onion (!) address: \url{http://njalladnspotetti.onion/} + \item \Gls{tor} onion (!) address: \url{http://njalladnspotetti.onion/} \item Payment forms accepted: Bitcoin, PayPal, LiteCoin, Monero, Dash, Bitcoin Cash. \end{itemize} diff --git a/source/Distros.tex b/source/Distros.tex index bdaba3e..350a137 100644 --- a/source/Distros.tex +++ b/source/Distros.tex @@ -15,7 +15,7 @@ The following operating systems will be used: \begin{itemize} - \item Debian \gls{gnulinux} --- For Utility, Ceph, and OpenNebula Servers. + \item Debian \gls{gnulinux} --- For Utility, \gls{ceph}, and Proxmox Servers. \item OPNSense --- \Glspl{firewall}. \end{itemize} diff --git a/source/Distros/Debian.tex b/source/Distros/Debian.tex index 0a795da..7648d86 100644 --- a/source/Distros/Debian.tex +++ b/source/Distros/Debian.tex @@ -11,7 +11,7 @@ % International Public License (CC BY-SA 4.0) by Fork Sand, Inc. % \section{Debian} -Debian is a free software GNU/Linux distribution. +Debian is a free software \gls{gnulinux} distribution. \begin{figure}[!htb] \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0]{www-debian.png} @@ -22,7 +22,7 @@ Debian is a free software GNU/Linux distribution. \subsection{Install Debian} The Debian servers all get a Minimal + standard utilities + sshd install. At present, it is being tested with virtual machines. When deployed, it will -be set up remotely using HTML5 IPMI. +be set up remotely using HTML5 \gls{ipmi}. Install Debian 9 (Stretch). @@ -80,10 +80,10 @@ Debian's description: \item Amazon Web Services (EBS-backed Amazon Machine Images for EC2, and other types) \item DigitalOcean (reuseable snapshots from available source images) - \item Docker + \item \Gls{docker} \item Google Compute Engine (images based on existing images) \item OpenStack (new reuseable images for servers in OpenStack clouds) - \item QEMU (KVM and Xen virtual machine images) + \item QEMU (\gls{kvm} and Xen virtual machine images) \item Oracle VirtualBox (virtual machine images) \end{itemize} diff --git a/source/Firewall-opnsense.tex b/source/Firewall-opnsense.tex index a57fa42..6b2ec63 100644 --- a/source/Firewall-opnsense.tex +++ b/source/Firewall-opnsense.tex @@ -42,8 +42,8 @@ of the rear is simply a bezel for fans. \end{figure} The onboard I/O is plentiful. There are two USB 3.0 ports along with -a VGA port for KVM carts. Above the USB ports there is a RJ-45 -Ethernet port for out-0f-band management that can be directly +a VGA port for \gls{kvm} carts. Above the USB ports there is a RJ-45 +Ethernet port for out-of-band management that can be directly connected to a dedicated management network. %------------------- Furthermore there are @@ -74,7 +74,7 @@ the internals better. \subsection{Remote Management} -Supermicro’s IPMI and KVM-over-IP enables deployment flexibility. +Supermicro’s \gls{ipmi} and \gls{kvm}-over-IP enables deployment flexibility. One can do remote power up, power down, and reset of the server in the event that it becomes unresponsive. @@ -94,23 +94,23 @@ the event that it becomes unresponsive. Supermicro's BIOS has a feature: the BMC IP address shows up on the post screen! -If you have a KVM cart hooked up to the system, it gives an +If you have a \gls{kvm} cart hooked up to the system, it gives an indicator of which machine one is connected to during post. -Supermicro does include KVM-over-IP functionality with the motherboard. +Supermicro does include \gls{kvm}-over-IP functionality with the motherboard. \begin{itemize} - \item Default IPMI connection is in cleartext http. - \item SSL certificate for Supermicro IPMI is bad (like all of them). - \item Can't change password on IPMI. - %\item Root password for server and IPMI is sent via email. + \item Default \gls{ipmi} connection is in cleartext http. + \item SSL certificate for Supermicro \gls{ipmi} is bad (like all of them). + \item Can't change password on \gls{ipmi}. + %\item Root password for server and \gls{ipmi} is sent via email. %\item There is an attack window between their machine imaging and first login. %\item Customer should control timing of first power on. %\item System is also possibly vuln during the ISP's initial power up and commissioning period. %\item First reboot, the system hung (.png XXX). %\item Hard reset, lots of DHCP queries at boot. %\item A \texttt{debian} user was on the system, password unknown. Check \texttt{/home}! - %\item They block NTP to prevent DDoS, so you have to use their time server + %\item They block NTP to prevent \gls{ddos}, so you have to use their time server % \texttt{time.sharktech.net} \end{itemize} @@ -142,7 +142,7 @@ Supermicro does include KVM-over-IP functionality with the motherboard. \label{fig:supermicroSSCIpmiInit} \end{figure} -Before IPMI Initialization, choose in Boot Agent GE an entry PXE +Before \gls{ipmi} Initialization, choose in Boot Agent GE an entry PXE (Preboot eXecution Environment) In Aptio Setup Utility set the following Boot Features: @@ -169,6 +169,9 @@ Set system Date/Time \newpage \subsection*{\textcolor{ao-white}{ Supermicro Setup over IPMI bios1}} +\begin{picture}(0,0)\put(-10000,0){ + \gls{ipmi} +}\end{picture} \begin{figure}[!htb] \includegraphics[keepaspectratio=true,height=1.10\textheight,width=1.00\textwidth,angle=0] {sf-fw/ssc-ipmi-boot1.png} diff --git a/source/Firewalls.tex b/source/Firewalls.tex index f3f515d..40794ba 100644 --- a/source/Firewalls.tex +++ b/source/Firewalls.tex @@ -25,8 +25,11 @@ What is the network doing? Two-factor authentication using TOTP. \section{IPtables-firewall} +\begin{picture}(0,0)\put(-10000,0){ + \gls{firewall} +}\end{picture} \subsection{Overview} -Most servers and workstations run GNU/Linux, which uses iptables. +Most servers and workstations run \gls{gnulinux}, which uses iptables. \subsection{iptables} iptables is part of the Netfilter project and has been included by default in diff --git a/source/Firmware.tex b/source/Firmware.tex index c015f57..7cb3383 100644 --- a/source/Firmware.tex +++ b/source/Firmware.tex @@ -25,11 +25,11 @@ Various projects replace some non-free binaries. \section{Coreboot} -Coreboot is used on Viking.net servers. +\Gls{coreboot} is used on Viking.net servers. \section{OpenBMC} -OpenBMC is used on Raptor Computing Systems OpenPOWER workstations. +\Gls{openbmc} is used on Raptor Computing Systems OpenPOWER workstations. \begin{itemize} \item Github: diff --git a/source/Hardware.tex b/source/Hardware.tex index bd1fd3e..4a4e5b9 100644 --- a/source/Hardware.tex +++ b/source/Hardware.tex @@ -30,7 +30,7 @@ The \gls{cluster} will require rackmountable equipment. \Large{\textbf{\Gls{sharkfork} 21U hardware instance}} \begin{itemize} - \item GNU/Linux Servers + \item \gls{gnulinux} Servers \item \Glspl{firewall} \item Switches \item File storages @@ -131,7 +131,7 @@ The \gls{cluster} will require rackmountable equipment. % 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{ Integrated \gls{ipmi} 2.0 + \gls{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 @@ -155,7 +155,7 @@ The \gls{cluster} will require rackmountable equipment. \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{ Integrated \gls{ipmi} 2.0 + \gls{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 } @@ -178,7 +178,7 @@ The \gls{cluster} will require rackmountable equipment. % 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{ Integrated \gls{ipmi} 2.0 + \gls{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 } @@ -204,23 +204,32 @@ The \gls{cluster} will require rackmountable equipment. \gls{firewall} \gls{corosynk} \gls{migration} - %\gls{ipmi} + \gls{ipmi} %\gls{upstream} }\end{picture} \begin{figure}[!htb] - \includepdf[width=200mm,height=277mm,offset=0 -8mm] - {sharkfork-wire-alt.pdf} + %\includepdf[width=200mm,height=277mm,offset=0 -8mm] + %{sharkfork-wire-alt.pdf} + \noindent + \makebox[0pt][l]{% + \raisebox{-\totalheight+16mm}[0pt][0pt]{% + \hspace*{-8mm} + \includegraphics[keepaspectratio=true,height=1.15\textheight,width=1.15\textwidth,angle=0] + {sharkfork-wire-alt.jpg} + %\def\svgwidth{180mm} + %\input{resources/drawings/sharkfork-wire-alt.pdf.tex} \setbox0=\vbox{\caption{Sharktech Ethernet Wiring Diagram}} + }} \end{figure} \newpage \section{GNU/Linux Servers} -The servers will all run Debian GNU/Linux +The servers will all run Debian \gls{gnulinux} \subsection{Denver Server List} \begin{itemize} - \item \texttt{oc1.forksand.com} --- KVM host. + \item \texttt{oc1.forksand.com} --- \gls{kvm} host. \item \texttt{rd1.forksand.com} --- Misc. \end{itemize} @@ -335,9 +344,9 @@ The disk drives do not run free software. 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. + \item Pogo Linux --- Debian \gls{gnulinux} Servers, USA. + \item Viking.net --- \Gls{coreboot} Opteron servers in Germany. + \item raptorcs.com --- POWER9, custom \Gls{coreboot} systems (?), USA. \end{itemize} \newcommand{\includescreen}[3]{ diff --git a/source/History.tex b/source/History.tex index e691293..d265320 100644 --- a/source/History.tex +++ b/source/History.tex @@ -16,6 +16,11 @@ Forksand started deployment on \glspl{dedicatedserver}. \vspace{0.6cm} First stage. Exclusively \glspl{dedicatedserver} (deprecated) +\begin{picture}(0,0)\put(-10000,0){ + \gls{cluster} + \gls{sharkfork} +}\end{picture} + \vspace{0.4cm} \centering \includegraphics[width=115mm,trim=20mm 20mm 20mm 20mm] diff --git a/source/Network.tex b/source/Network.tex index 371dbab..de9a6d9 100644 --- a/source/Network.tex +++ b/source/Network.tex @@ -69,6 +69,6 @@ be able to use... For now we will be using: \end{figure} \section{IPMI Administration} -The servers have low level administration done via HTML5 IPMI. -OpenBMC will be used, where possible. +The servers have low level administration done via HTML5 \gls{ipmi}. +\Gls{openbmc} will be used, where possible. diff --git a/source/Proxmox.tex b/source/Proxmox.tex index 990acb9..84b3e9c 100644 --- a/source/Proxmox.tex +++ b/source/Proxmox.tex @@ -35,7 +35,7 @@ Documentation: \item The Proxmox VE installer, which partitions the hard drive(s) with ext4, ext3, xfs or ZFS and installs the operating system. - \item Proxmox VE kernel (Linux) with LXC and KVM support + \item Proxmox VE kernel (Linux) with LXC and \gls{kvm} support Proxmox VE Administration Guide 9/309 \item Complete toolset for administering virtual machines, containers and all necessary resources @@ -45,7 +45,7 @@ containers and all necessary resources \end{itemize} -The following servers will be deployed to host Proxmox and the KVMs: +The following servers will be deployed to host Proxmox and the \glspl{kvm}: \begin{itemize} \item \texttt{sf-001} --- Virtual Machine Node 1 @@ -55,14 +55,14 @@ The following servers will be deployed to host Proxmox and the KVMs: \end{itemize} %\subsection{Virtual Machine Servers} -%KVM virtual machine servers. Fast CPU, with lots of RAM. Uses Ceph to store +%\Gls{kvm} virtual machine servers. Fast CPU, with lots of RAM. Uses \gls{ceph} to store %virtual images. % %\subsection{Proxmox Web GUI Servers} %A Proxmox's Web GUI for administration of the \gls{cluster}. \subsection{Virtual Machine Nodes} -Virtual machine nodes. Fast CPU, with lots of RAM. Uses Ceph to store +Virtual machine nodes. Fast CPU, with lots of RAM. Uses \gls{ceph} to store virtual images. Every node includes a Proxmox's Web GUI service for administration of the \gls{cluster}. @@ -120,8 +120,8 @@ Info: This goes through https with self-signed certificate. %\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} +%\item Enter the hostname of the \gls{kvm} server you want to use, such as the Sunstone server itself. +% \texttt{Type: \gls{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 @@ -143,7 +143,7 @@ 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 \texttt{Debian 9 - \gls{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}. @@ -152,7 +152,7 @@ How to deploy an image from the Proxmox App store: \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{Debian 9 - \gls{kvm}}. \item Click \texttt{Instantiate}. \item \texttt{VM Name} enter \texttt{deb9}. \item \texttt{Number of instances} enter \texttt{1}. @@ -168,7 +168,7 @@ How to deploy an image from the Proxmox App store: \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. + \item This means a Debian \gls{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. @@ -176,9 +176,9 @@ How to deploy an image from the Proxmox App store: I think delete this section, it would go before the \texttt{Templates} above.: \begin{enumerate} - \item Click \texttt{Debian 9 - KVM}. + \item Click \texttt{Debian 9 - \gls{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 PROBABLY NO: It will say \texttt{Copy of Debian 9 - \gls{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. diff --git a/source/Software-daemons.tex b/source/Software-daemons.tex index 45b3324..b805614 100644 --- a/source/Software-daemons.tex +++ b/source/Software-daemons.tex @@ -42,6 +42,9 @@ dnsmasq DHCP for 350+ hosts. Mailing list, discussion board, forum. \section{\href{https://dockerproject.org/}{Docker}} +\begin{picture}(0,0)\put(-10000,0){ + \gls{docker} +}\end{picture} System containers, virtual servers. \section{\href{http://dnsmasq.org/}{DNS}} @@ -751,11 +754,11 @@ server, https://own.alephobjects.com . * https://docs.docker.com/engine/installation/linux/debian/ \end{minted} -We're going to use a Docker install... own.alephobjects.com is +We're going to use a \gls{docker} install... own.alephobjects.com is currently running Debian Stretch (testing, version 9). Unfortunately, -docker.io (as it is named in Debian) is available for jessie-backports -and sid, but not for stretch... We'll use docker's apt repos to get -docker.... +\gls{docker}.io (as it is named in Debian) is available for jessie-backports +and sid, but not for stretch... We'll use \gls{docker}'s apt repos to get +\gls{docker} .... \subsection{Install Docker} \begin{minted}{sh} * https://docs.docker.com/engine/installation/linux/debian/ @@ -772,6 +775,9 @@ Add: \begin{minted}{sh} deb https://apt.dockerproject.org/repo debian-stretch main \end{minted} +\begin{picture}(0,0)\put(-10000,0){ + \gls{docker} +}\end{picture} \begin{minted}{sh} cd /etc ; git add . ; git commit -a -m 'Add docker repo to apt' \end{minted} @@ -783,6 +789,9 @@ cd /etc ; git add . ; git commit -a -m 'Install docker' service docker start \end{minted} \subsection{Test docker} +\begin{picture}(0,0)\put(-10000,0){ + \gls{docker} +}\end{picture} \begin{minted}{sh} docker run hello-world \end{minted} @@ -805,6 +814,9 @@ enabled = true mode = sharedsecret \end{minted} \subsection{Run Spreed Docker} +\begin{picture}(0,0)\put(-10000,0){ + \gls{docker} +}\end{picture} \begin{minted}{sh} cd /srv/spreed @@ -822,6 +834,9 @@ apt install -y rng-tools rngd -f -r /dev/urandom \end{minted} Run it thusly: +\begin{picture}(0,0)\put(-10000,0){ + \gls{docker} +}\end{picture} \begin{minted}{sh} docker run -d --name my-spreed-webrtc -p 8080:8080 -p 8443:8443 -v \ /etc/spreed:/etc/spreed -v /var/log/spreed:/var/log/spreed -v \ @@ -846,6 +861,9 @@ Add this inside the VirtualHost section: RequestHeader set X-Forwarded-Proto 'https' env=HTTPS \end{minted} \subsection{Spreed Configuration} +\begin{picture}(0,0)\put(-10000,0){ + \gls{docker} +}\end{picture} \begin{minted}{sh} Get the config in own.alephobjects.com --> admin --> Additional Settings(?) --> Spreed.me @@ -932,7 +950,7 @@ Main SMTP outgoing mail server. Database server. \section{\href{http://www.qemu.org/}{QEMU}} -Computer emulator, runs virtual servers. Uses KVM. +Computer emulator, runs virtual servers. Uses \gls{kvm}. \section{\href{http://rsync.samba.org/}{rsync}} File server. diff --git a/source/Source-gen.tex b/source/Source-gen.tex deleted file mode 100644 index 3cbb908..0000000 --- a/source/Source-gen.tex +++ /dev/null @@ -1,246 +0,0 @@ -\section{\texttt{SHA256SUM}} -\texttt{SHA256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855} -\inputminted{sh}{resources/SHA256SUM} -\section{\texttt{STATS}} -\texttt{SHA256: b5fd0d24673c05a70026ca4db2576a80f8e8b4740e4558f29c63194a4ae58829} -\inputminted{sh}{resources/STATS} -\section{\texttt{apps/ansible-debian-mail/ansible.cfg}} -\texttt{SHA256: 5c5bbe341a18319f6f24033c4f63fc5f1594469b4f2cfbb991ec596fd30e9a3b} -\inputminted{sh}{resources/apps/ansible-debian-mail/ansible.cfg} -\section{\texttt{apps/ansible-debian-mail/group\char`_vars/all.yml}} -\texttt{SHA256: b5f417e155b47834e49be9243ba776a6516c56c3ed0121d2bc4d022d5acacd87} -\inputminted{sh}{resources/apps/ansible-debian-mail/group_vars/all.yml} -\section{\texttt{apps/ansible-debian-mail/inventory.yml}} -\texttt{SHA256: cc816d03579097542ca85c188995a412d619c08c84bf3dfef73191fc5cc05b54} -\inputminted{sh}{resources/apps/ansible-debian-mail/inventory.yml} -\section{\texttt{apps/ansible-debian-mail/roles/dkim\char`_configuration/tasks/\\ \qquad\qquad\qquad../main.yml}} -\texttt{SHA256: 95d75eba0703ebb00f12d01a821353fe1ddb7a5612a72ea2c4e658d2be5afb52} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/dkim_configuration/tasks/main.yml} -\section{\texttt{apps/ansible-debian-mail/roles/dkim\char`_configuration/templates/\\ \qquad\qquad\qquad../internalhosts.j2}} -\texttt{SHA256: 4f83d988f9a305d6f7571f1742f8e284f0008182bcb21f3b8683594fd5de2340} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/dkim_configuration/templates/internalhosts.j2} -\section{\texttt{apps/ansible-debian-mail/roles/dkim\char`_configuration/templates/\\ \qquad\qquad\qquad../opendkim.conf.j2}} -\texttt{SHA256: bf71aafad2295a773f5556ff870e4db70d62451a26fc952bde04336642f7afc2} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/dkim_configuration/templates/opendkim.conf.j2} -\section{\texttt{apps/ansible-debian-mail/roles/dkim\char`_configuration/templates/\\ \qquad\qquad\qquad../opendkim.j2}} -\texttt{SHA256: 4069a27787b75f0af2ca555ff0f5668c2cbe6813909108a92c1583c4e82d2863} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/dkim_configuration/templates/opendkim.j2} -\section{\texttt{apps/ansible-debian-mail/roles/dkim\char`_configuration/templates/\\ \qquad\qquad\qquad../opendmarc.conf.j2}} -\texttt{SHA256: 3d5208869831f657790c9642ea0ad63db2ad79d080d7d7ef24da0b802946b223} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/dkim_configuration/templates/opendmarc.conf.j2} -\section{\texttt{apps/ansible-debian-mail/roles/dkim\char`_configuration/templates/\\ \qquad\qquad\qquad../opendmarc.j2}} -\texttt{SHA256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/dkim_configuration/templates/opendmarc.j2} -\section{\texttt{apps/ansible-debian-mail/roles/dkim\char`_configuration/templates/\\ \qquad\qquad\qquad../trustedhosts.j2}} -\texttt{SHA256: 9252907b8d86ae437a9910148e6c72b2fce30be020a57ab3d59111fc5de5f6f7} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/dkim_configuration/templates/trustedhosts.j2} -\section{\texttt{apps/ansible-debian-mail/roles/dovecot\char`_configuration/handlers/\\ \qquad\qquad\qquad../main.yml}} -\texttt{SHA256: 218fc20617243fef6f783cd83332fa0fe9e610483bc2c2f1b1245e8eec0959ac} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/dovecot_configuration/handlers/main.yml} -\section{\texttt{apps/ansible-debian-mail/roles/dovecot\char`_configuration/tasks/\\ \qquad\qquad\qquad../main.yml}} -\texttt{SHA256: f9d7c2c906c9f092d2dd973cc2c2e9ce9b4b5b01f2ec056f3095c6fc802c2d74} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/dovecot_configuration/tasks/main.yml} -\section{\texttt{apps/ansible-debian-mail/roles/dovecot\char`_configuration/templates/\\ \qquad\qquad\qquad../10-master.conf.j2}} -\texttt{SHA256: d7004417a7ac1d96e9904b05f68879a752dec6f7621bc56ed18434aabf78c40b} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/dovecot_configuration/templates/10-master.conf.j2} -\section{\texttt{apps/ansible-debian-mail/roles/dovecot\char`_configuration/templates/\\ \qquad\qquad\qquad../10-ssl.conf.j2}} -\texttt{SHA256: 660790c32b47fd84326c6d53efcb13a2a6c691fa96d59c880aceadf71f8fa1f0} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/dovecot_configuration/templates/10-ssl.conf.j2} -\section{\texttt{apps/ansible-debian-mail/roles/fail2ban\char`_configuration/tasks/\\ \qquad\qquad\qquad../main.yml}} -\texttt{SHA256: 8ebe1bb04c097e8371d63b6ac16c393ca74c094711942f2560252d482a0f17ce} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/fail2ban_configuration/tasks/main.yml} -\section{\texttt{apps/ansible-debian-mail/roles/letsencrypt\char`_configuration/tasks/\\ \qquad\qquad\qquad../main.yml}} -\texttt{SHA256: 817e705118fd6d92e7e89a84544ba907c71aa4395b3cb925fe4421b1b99add53} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/letsencrypt_configuration/tasks/main.yml} -\section{\texttt{apps/ansible-debian-mail/roles/mikegleasonjr.firewall/.travis.yml}} -\texttt{SHA256: 6920d48ae9610b5d0d61c9638d27e30b46b885777ab04127a198a380df12ae38} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/mikegleasonjr.firewall/.travis.yml} -\section{\texttt{apps/ansible-debian-mail/roles/mikegleasonjr.firewall/Vagrantfile}} -\texttt{SHA256: b8c8b8560eb577eb8637a446bc28aba7df05d34618093023a2b43f7764c75fb2} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/mikegleasonjr.firewall/Vagrantfile} -\section{\texttt{apps/ansible-debian-mail/roles/mikegleasonjr.firewall/defaults/\\ \qquad\qquad\qquad../main.yml}} -\texttt{SHA256: c86227ad9775e213708a92703958d1ae8dc80b5073b665499839e4c80f0d77d5} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/mikegleasonjr.firewall/defaults/main.yml} -\section{\texttt{apps/ansible-debian-mail/roles/mikegleasonjr.firewall/meta/\\ \qquad\qquad\qquad../main.yml}} -\texttt{SHA256: c77f50cf2758025bece96792badbf0f98a799738be56e3dbd94d5c416ce402b5} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/mikegleasonjr.firewall/meta/main.yml} -\section{\texttt{apps/ansible-debian-mail/roles/mikegleasonjr.firewall/meta/\\ \qquad\qquad\qquad../.galaxy\char`_install\char`_info}} -\texttt{SHA256: 8df2fa6c72bad1a6b52a7e84a1dd5a850b96d3ed55c4266113c1476bbc1c974d} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/mikegleasonjr.firewall/meta/.galaxy_install_info} -\section{\texttt{apps/ansible-debian-mail/roles/mikegleasonjr.firewall/tasks/\\ \qquad\qquad\qquad../main.yml}} -\texttt{SHA256: 5d1ebe1ec51a5a4b0ab52bbf1af63ca94af4290182755b2463aa321bfb39732f} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/mikegleasonjr.firewall/tasks/main.yml} -\section{\texttt{apps/ansible-debian-mail/roles/mikegleasonjr.firewall/tasks/\\ \qquad\qquad\qquad../persist-debian.yml}} -\texttt{SHA256: da08d16128d29e725a80590890592020a53d90cbeac3b55dbe67da63fc254e6b} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/mikegleasonjr.firewall/tasks/persist-debian.yml} -\section{\texttt{apps/ansible-debian-mail/roles/mikegleasonjr.firewall/tasks/\\ \qquad\qquad\qquad../persist-redhat.yml}} -\texttt{SHA256: aaa130a6c8ad52ede70c2b12e46e27e61475e5d8b0842274b5ce0515ad645734} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/mikegleasonjr.firewall/tasks/persist-redhat.yml} -\section{\texttt{apps/ansible-debian-mail/roles/mikegleasonjr.firewall/tasks/\\ \qquad\qquad\qquad../rules.yml}} -\texttt{SHA256: 6f28f53b5c77709268853ab1ba9f16ca30d64cd72dde08e9d9826b82c714e602} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/mikegleasonjr.firewall/tasks/rules.yml} -\section{\texttt{apps/ansible-debian-mail/roles/mikegleasonjr.firewall/templates/\\ \qquad\qquad\qquad../generated.v4.j2}} -\texttt{SHA256: 1c8f8244b151f386933796a30c299f86d580880e16a7abba3653a1e3765a5394} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/mikegleasonjr.firewall/templates/generated.v4.j2} -\section{\texttt{apps/ansible-debian-mail/roles/mikegleasonjr.firewall/templates/\\ \qquad\qquad\qquad../generated.v6.j2}} -\texttt{SHA256: b724ce42ef251f979751e080279d27c6f82e21f5c30118a731aacf3f8b494624} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/mikegleasonjr.firewall/templates/generated.v6.j2} -\section{\texttt{apps/ansible-debian-mail/roles/mikegleasonjr.firewall/tests.yml}} -\texttt{SHA256: a7c2b3cd0f70c600c3e1db74d95533be3eb864853394c62330b5532c49abb572} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/mikegleasonjr.firewall/tests.yml} -\section{\texttt{apps/ansible-debian-mail/roles/outputs/tasks/main.yml}} -\texttt{SHA256: 10734468f2c6744ef0fc14bb5f8d9678fb684d9647a981ab7dc93e81f6b3396b} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/outputs/tasks/main.yml} -\section{\texttt{apps/ansible-debian-mail/roles/postfix\char`_configuration/files/\\ \qquad\qquad\qquad../auth\char`_header\char`_checks.pcre}} -\texttt{SHA256: 3749fe155aa62adb30db35bedc96bdb47b1e094e8cc3b12e4915dc6137edcc43} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/postfix_configuration/files/auth_header_checks.pcre} -\section{\texttt{apps/ansible-debian-mail/roles/postfix\char`_configuration/files/\\ \qquad\qquad\qquad../master.cf}} -\texttt{SHA256: 13dd76df6148f7a898c8054f5566cbd351207a9bc5ae97ced9e4b5407af923a5} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/postfix_configuration/files/master.cf} -\section{\texttt{apps/ansible-debian-mail/roles/postfix\char`_configuration/handlers/\\ \qquad\qquad\qquad../main.yml}} -\texttt{SHA256: a31d3860adb790e2ab6ee5763e2b59aa5b17b94f56cb7236845128f0e870e597} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/postfix_configuration/handlers/main.yml} -\section{\texttt{apps/ansible-debian-mail/roles/postfix\char`_configuration/tasks/\\ \qquad\qquad\qquad../main.yml}} -\texttt{SHA256: cf7521b7366045753045ac11bdccc11857bc0c171a0fc1ba9c572fe7d59fd627} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/postfix_configuration/tasks/main.yml} -\section{\texttt{apps/ansible-debian-mail/roles/postfix\char`_configuration/templates/\\ \qquad\qquad\qquad../aliases.j2}} -\texttt{SHA256: 5a101165ebf12cbd1663908e21f77dc2636fee45da36f5daa79ab84c47e7dfcb} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/postfix_configuration/templates/aliases.j2} -\section{\texttt{apps/ansible-debian-mail/roles/server\char`_tasks/handlers/\\ \qquad\qquad\qquad../main.yml}} -\texttt{SHA256: 5822b360aa9988efc37bdf5dd9626de45b2d1f279f70e032f5b56427994f440d} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/server_tasks/handlers/main.yml} -\section{\texttt{apps/ansible-debian-mail/roles/server\char`_tasks/tasks/\\ \qquad\qquad\qquad../main.yml}} -\texttt{SHA256: 9482c99a24179cb4bcd0d8ea5bf6ac5e8391cd88b1242190693c685127bb94e8} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/server_tasks/tasks/main.yml} -\section{\texttt{apps/ansible-debian-mail/roles/spamassassin\char`_configuration/tasks/\\ \qquad\qquad\qquad../main.yml}} -\texttt{SHA256: bc1d9877f592fe1b63385a38febee9ed7769cbb01972e73f950dcc6e5309ded0} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/spamassassin_configuration/tasks/main.yml} -\section{\texttt{apps/ansible-debian-mail/roles/sqlgrey\char`_configuration/tasks/\\ \qquad\qquad\qquad../main.yml}} -\texttt{SHA256: c85d3966f275654bfde3c1c5065980debe0be5900ad5b33f3bf19e893610b635} -\inputminted{sh}{resources/apps/ansible-debian-mail/roles/sqlgrey_configuration/tasks/main.yml} -\section{\texttt{apps/ansible-debian-mail/site.yml}} -\texttt{SHA256: 00b3b9b020bfd4ebe7732bf3a96a7dc5ce37c6788907f0574a193c3f5fcd0224} -\inputminted{sh}{resources/apps/ansible-debian-mail/site.yml} -\section{\texttt{apps/ansible-gitea/ansible.cfg}} -\texttt{SHA256: 5c5bbe341a18319f6f24033c4f63fc5f1594469b4f2cfbb991ec596fd30e9a3b} -\inputminted{sh}{resources/apps/ansible-gitea/ansible.cfg} -\section{\texttt{apps/ansible-gitea/inventory.yml}} -\texttt{SHA256: cc816d03579097542ca85c188995a412d619c08c84bf3dfef73191fc5cc05b54} -\inputminted{sh}{resources/apps/ansible-gitea/inventory.yml} -\section{\texttt{apps/ansible-gitea/roles/gitea/defaults/main.yml}} -\texttt{SHA256: 19aeb0ea8e30712f9589fd7037415118a92666d12ae30aa0757be6fde6357225} -\inputminted{sh}{resources/apps/ansible-gitea/roles/gitea/defaults/main.yml} -\section{\texttt{apps/ansible-gitea/roles/gitea/handlers/main.yml}} -\texttt{SHA256: 4012e6484af750c9b21a8d9f04e68ddd291c37a8dd9657daa862124e480c2497} -\inputminted{sh}{resources/apps/ansible-gitea/roles/gitea/handlers/main.yml} -\section{\texttt{apps/ansible-gitea/roles/gitea/tasks/create\char`_user.yml}} -\texttt{SHA256: 28d0983feb2aba01934a25cad94e64e77c055e6a977bb2a0db9a8c199933b369} -\inputminted{sh}{resources/apps/ansible-gitea/roles/gitea/tasks/create_user.yml} -\section{\texttt{apps/ansible-gitea/roles/gitea/tasks/install\char`_systemd.yml}} -\texttt{SHA256: 7e6155085ebae67496b3267cdf3211fd3a7e0f178661ff21e20101947456912e} -\inputminted{sh}{resources/apps/ansible-gitea/roles/gitea/tasks/install_systemd.yml} -\section{\texttt{apps/ansible-gitea/roles/gitea/tasks/main.yml}} -\texttt{SHA256: bc5f081dfd51f5c920c8dda1873560a2602204dd9d28a881238fd66e22437c2d} -\inputminted{sh}{resources/apps/ansible-gitea/roles/gitea/tasks/main.yml} -\section{\texttt{apps/ansible-gitea/roles/gitea/templates/gitea.ini.j2}} -\texttt{SHA256: c8be571f2f2407240bc88997aedf70c9230554a65132ebab9a1ee0d4296ff9d3} -\inputminted{ini}{resources/apps/ansible-gitea/roles/gitea/templates/gitea.ini.j2} -\section{\texttt{apps/ansible-gitea/roles/gitea/templates/gitea.service.j2}} -\texttt{SHA256: 0acbfe01156c9e39ee71a4fc64310ab003f09bfcf544df00b1f3cff010ed8f38} -\inputminted{sh}{resources/apps/ansible-gitea/roles/gitea/templates/gitea.service.j2} -\section{\texttt{apps/ansible-gitea/roles/nginx/defaults/main.yml}} -\texttt{SHA256: 20c921226115e5a92309d543b66066438e6565bdbd054e7ca41d0fc6ddcfcd9a} -\inputminted{sh}{resources/apps/ansible-gitea/roles/nginx/defaults/main.yml} -\section{\texttt{apps/ansible-gitea/roles/nginx/handlers/main.yml}} -\texttt{SHA256: 5a3990dbfb331c83fbbff76368a2426ae03d34052454aa6676f52b7e4652d561} -\inputminted{sh}{resources/apps/ansible-gitea/roles/nginx/handlers/main.yml} -\section{\texttt{apps/ansible-gitea/roles/nginx/tasks/main.yml}} -\texttt{SHA256: 5232d5b0894c1e6a3da8472591ef49e9c80e927cdbec626c15c9e1a9796729a8} -\inputminted{sh}{resources/apps/ansible-gitea/roles/nginx/tasks/main.yml} -\section{\texttt{apps/ansible-gitea/roles/nginx/templates/nginx.conf.j2}} -\texttt{SHA256: 1ecb64716e6674eb30a145c79859774cc5772304828553474c05820a2151ff3b} -\inputminted{sh}{resources/apps/ansible-gitea/roles/nginx/templates/nginx.conf.j2} -\section{\texttt{apps/ansible-gitea/roles/nginx/templates/nginxssl.conf.j2}} -\texttt{SHA256: 4d7edebbe48f20aeeb49599d32fc5531db943cbf43d7e9995674c180b56f2e77} -\inputminted{sh}{resources/apps/ansible-gitea/roles/nginx/templates/nginxssl.conf.j2} -\section{\texttt{apps/ansible-gitea/site.yml}} -\texttt{SHA256: d74378b00af74eabe0cc11d0f0b1db5c902116c583216f14152d968e5a71e474} -\inputminted{sh}{resources/apps/ansible-gitea/site.yml} -\section{\texttt{apps/iptables/etc/iptables}} -\texttt{SHA256: 825577f3fd900576c119d0a6191de16bf2d55fb84e6749921710b293e5fd1889} -\inputminted{sh}{resources/apps/iptables/etc/iptables} -\section{\texttt{apps/iptables/etc/iptables.test.rules}} -\texttt{SHA256: 4b50c760daa85619a74f1c635b26807fcc7f8bedb90bd22893de8c98f3d78ff1} -\inputminted{sh}{resources/apps/iptables/etc/iptables.test.rules} -\section{\texttt{apps/oca-forksand-v1\char`_1/README.rst}} -\texttt{SHA256: acb247e6caa20a6e5cac57de3137a6bd561f810e4b92d2e32d31064e4e998720} -\inputminted{sh}{resources/apps/oca-forksand-v1_1/README.rst} -\section{\texttt{apps/oca-forksand-v1\char`_1/inventory}} -\texttt{SHA256: 0f3d8a645a0f03d28bd72f8fe137a9aec2ca3b22bcd927f414d4b49236b1c630} -\inputminted{sh}{resources/apps/oca-forksand-v1_1/inventory} -\section{\texttt{apps/oca-forksand-v1\char`_1/playbook.yml}} -\texttt{SHA256: 6e8f7eb1c3db664d243cfe1a5c2c06982979c1e3eed2d65a6a35eaa688de6e64} -\inputminted{sh}{resources/apps/oca-forksand-v1_1/playbook.yml} -\section{\texttt{apps/oca-forksand-v1\char`_1/requirements.yml}} -\texttt{SHA256: c8a9b53d477d7f2d9beb3a32451f6444525c2f515af4abc6ed3fc7bd0b0a049d} -\inputminted{sh}{resources/apps/oca-forksand-v1_1/requirements.yml} -\section{\texttt{apps/oca/etc/init.d/openerp-server}} -\texttt{SHA256: 03e673de76f6aece8473a8441b0c921368f675ea234b62fa58708427a1b69346} -\inputminted{sh}{resources/apps/oca/etc/init.d/openerp-server} -\section{\texttt{apps/oca/lib/systemd/system/odoo-server.service}} -\texttt{SHA256: a149aa2a11f17a20eda8f32e2ef5b34e403b772d53f1dcd2a62bd44b166c2122} -\inputminted{sh}{resources/apps/oca/lib/systemd/system/odoo-server.service} -\section{\texttt{apps/oca/oca11-addons}} -\texttt{SHA256: 72d2cb138dfae349f5029b27dae74d13745061233fcebb79ef3d38eb4836183a} -\inputminted{sh}{resources/apps/oca/oca11-addons} -\section{\texttt{apps/oca/oca-install.sh}} -\texttt{SHA256: 3d793228bd669725954044abb7901b38d6aa2fc397ee2d9fd65e46973a6e4365} -\inputminted{sh}{resources/apps/oca/oca-install.sh} -\section{\texttt{apps/oca/oca-manual-modules}} -\texttt{SHA256: 36b8bf27d09d3f67387f1febc34212a137341d18d25da3e47767fe8e8a56054f} -\inputminted{sh}{resources/apps/oca/oca-manual-modules} -\section{\texttt{apps/oca/odoo9-modules}} -\texttt{SHA256: 3d742d5b59b2a2d7e3c500be929d001bc3685b3a755ec8e913e82a90c87d58ec} -\inputminted{sh}{resources/apps/oca/odoo9-modules} -\section{\texttt{apps/odoo/odoo11-deb-install.sh}} -\texttt{SHA256: eec3af072498c00dd207f85d05de93ae81b4a0a6f4d31aa6b1dfb31af84eb07f} -\inputminted{sh}{resources/apps/odoo/odoo11-deb-install.sh} -\section{\texttt{apps/sharkfork-bootstrap/forksand-sf-001-bootstrap}} -\texttt{SHA256: 3b4f786de5988810eb25f43800a180127676565460c1405fd3a427a564d7ae0e} -\inputminted{sh}{resources/apps/sharkfork-bootstrap/forksand-sf-001-bootstrap} -\section{\texttt{apps/sharkfork-bootstrap/forksand-sf-002-bootstrap}} -\texttt{SHA256: 3509ed438def78ef75a44d9cff92d91c2822c8f08ae0933b2eb6c74fd366fc1b} -\inputminted{sh}{resources/apps/sharkfork-bootstrap/forksand-sf-002-bootstrap} -\section{\texttt{apps/sharkfork-bootstrap/forksand-sf-003-bootstrap}} -\texttt{SHA256: bcf25c40a6f6286747cf409b5531b8b5dab74bf9130ee9cd1509072a21e18e75} -\inputminted{sh}{resources/apps/sharkfork-bootstrap/forksand-sf-003-bootstrap} -\section{\texttt{apps/sharkfork-bootstrap/forksand-sf-004-bootstrap}} -\texttt{SHA256: e9d1882ecb7401d9424e4147594eb96ccf36707e63b11f4d47a5be50d35cc01d} -\inputminted{sh}{resources/apps/sharkfork-bootstrap/forksand-sf-004-bootstrap} -\section{\texttt{apps/sharkfork-bootstrap/forksand-sf-proxmox}} -\texttt{SHA256: 4fa25490d18e693db532a147146bb9751d960ef732fc8ed859089dd5522f05f2} -\inputminted{sh}{resources/apps/sharkfork-bootstrap/forksand-sf-proxmox} -\section{\texttt{apps/ssh/socks-chain.sh}} -\texttt{SHA256: 8e0ee0af15f20e6a5120f9bca4b073532002f8d309dc365c64734b111c03ae4e} -\inputminted{sh}{resources/apps/ssh/socks-chain.sh} -\section{\texttt{apps/ssh/socks-proxy.sh}} -\texttt{SHA256: 646c3cdef108cf891d9d5279971f3da8a708d78b9cb18da832043ba3048cfacf} -\inputminted{sh}{resources/apps/ssh/socks-proxy.sh} -\section{\texttt{apps/yadifa-master/etc/yadifa/yadifad.conf}} -\texttt{SHA256: 1802daa96fe2a7373059b86ae166f008591aad4304eb8176e1c20f56e61e7df8} -\inputminted{sh}{resources/apps/yadifa-master/etc/yadifa/yadifad.conf} -\section{\texttt{apps/yadifa-master/var/lib/yadifa/masters/solipsists.org.zone}} -\texttt{SHA256: e2c4028695f3ac6b6ed8afb963a7821589b94ed81a2d068d7480b809d402c830} -\inputminted{ca65}{resources/apps/yadifa-master/var/lib/yadifa/masters/solipsists.org.zone} -\section{\texttt{apps/yadifa-slave/etc/yadifa/yadifad.conf}} -\texttt{SHA256: 705f36a12aee30e8510e5d06f1d3dd471a82aa518e00648a83f8f9d1146b8186} -\inputminted{sh}{resources/apps/yadifa-slave/etc/yadifa/yadifad.conf} -\section{\texttt{apps/yadifa/var/lib/yadifa/masters/0.0.127.in-addr.arpa.zone}} -\texttt{SHA256: 1966009066a265b65574003bc5f338ee4c2595c010ece34e9e428c526b974fd5} -\inputminted{ca65}{resources/apps/yadifa/var/lib/yadifa/masters/0.0.127.in-addr.arpa.zone} -\section{\texttt{apps/yadifa/var/lib/yadifa/masters/localhost.zone}} -\texttt{SHA256: 93847412dc586aa627b7c8d9c7f9f08223d62bd7297bb02058b57aaa4e92e220} -\inputminted{ca65}{resources/apps/yadifa/var/lib/yadifa/masters/localhost.zone} -\section{\texttt{txt2qrpng.sh}} -\texttt{SHA256: 28dff76725cfbe3e4dcf70120f0393422507443fa5b6a62e1814bd44fb62161e} -\inputminted{sh}{resources/txt2qrpng.sh} diff --git a/source/forksand-it-manual.tex b/source/forksand-it-manual.tex index 562689d..f1224ff 100644 --- a/source/forksand-it-manual.tex +++ b/source/forksand-it-manual.tex @@ -77,6 +77,7 @@ leftmargin=1cm,rightmargin=1cm \usepackage{longtable} \usepackage{tabu} \usepackage{smartdiagram} +\usepackage{svg} \usesmartdiagramlibrary{additions} \usepackage{comment} % /usr/share/doc/texlive-doc/latex/comment/comment.pdf \usepackage{pdfpages} % Be able to include pdf @@ -270,7 +271,8 @@ leftmargin=1cm,rightmargin=1cm %\typeoutstandardlayout %%% END DEBUG %%% -\newglossaryentry{cluster}{name={Cluster},plural={Clusters}, +\newglossaryentry{cluster}{ + name={Cluster},plural={Clusters}, description={, computer cluster is a set of loosely or tightly connected computers that work together so that, in many respects, they can be viewed as a single system.}} @@ -308,9 +310,10 @@ leftmargin=1cm,rightmargin=1cm \newglossaryentry{migration}{ name={Migration}, description={ see Corosynk description for details}} -\newglossaryentry{gnulinux}{name={GNU/Linux}, +\newglossaryentry{gnulinux}{ + name={GNU/Linux}, description={ is a term promoted by the Free Software Foundation - (FSF) and its founder Richard Stallman.[6] Proponents call for + (FSF) and its founder Richard Stallman. Proponents call for the correction of the more extended term, on the grounds that it doesn't give credit to the major contributor and the associated free software philosophy.}} @@ -318,9 +321,89 @@ leftmargin=1cm,rightmargin=1cm name={Firewall},plural={Firewalls}, description={ (in computing) is a network security system that monitors and controls incoming and outgoing network traffic - based on predetermined security rules.[1] A firewall typically + based on predetermined security rules. A firewall typically establishes a barrier between a trusted internal network and untrusted external network, such as the Internet.}} +\newglossaryentry{coreboot}{ + name={Coreboot}, + description={, formerly known as LinuxBIOS, is a software + project aimed at replacing proprietary firmware (BIOS or UEFI) + found in most computers with a lightweight firmware designed to + perform only the minimum number of tasks necessary to load and + run a modern 32-bit or 64-bit operating system.}} +\newglossaryentry{ipmi}{ + name={IPMI}, + description={, the Intelligent Platform Management Interface + (IPMI) is a set of computer interface specifications for an + autonomous computer subsystem that provides management and + monitoring capabilities independently of the host system's CPU, + firmware (BIOS or UEFI) and operating system. IPMI defines a set + of interfaces used by system administrators for out-of-band + management of computer systems and monitoring of their operation. + For example, IPMI provides a way to manage a computer that may + be powered off or otherwise unresponsive by using a network + connection to the hardware rather than to an operating system + or login shell.}} +\newglossaryentry{openbmc}{ + name={OpenBMC}, + description={ project is a Linux Foundation Collaborative + open-source project whose goal is to produce an open source + implementation of the Baseboard Management Controllers (BMC) + Firmware Stack. OpenBMC is a Linux distribution for + BMCs meant to work across heterogeneous systems that include + enterprise, High-performance computing (HPC), + Telecommunications, and cloud-scale data centers.}} +\newglossaryentry{tor}{ + name={Tor}, + description={ is free software for enabling anonymous + communication. The name is derived from an acronym for the + original software project name "The Onion Router". Tor + directs Internet traffic through a free, worldwide, + volunteer overlay network consisting of thousands of relays + to conceal a user's location and usage from anyone + conducting network surveillance or traffic analysis.}} +\newglossaryentry{kvm}{ + name={KVM}, plural={KVMs}, + description={, the Kernel-based Virtual Machine is a + virtualization infrastructure for the Linux kernel that + turns it into a hypervisor. It was merged into the Linux + kernel mainline in kernel version 2.6.20, which was + released on February 5, 2007. KVM requires a processor + with hardware virtualization extensions. KVM has also been + ported to FreeBSD and illumos in the form of loadable + kernel modules.}} +\newglossaryentry{ddos}{ + name={DDoS}, + description={, a distributed denial-of-service (DDoS) is a + large-scale DoS attack where the perpetrator uses more than + one unique IP address, often thousands of them. Since + the incoming traffic flooding the victim originates from + many different sources, it is impossible to stop the attack + simply by using ingress filtering. It also makes it very + difficult to distinguish legitimate user traffic from + attack traffic when spread across so many points of origin. + As an alternative or augmentation of a DDoS, attacks may + involve forging of IP sender addresses (IP address spoofing) + further complicating identifying and defeating the attack.}} +\newglossaryentry{ceph}{ + name={Ceph}, + description={ is a free-software storage platform, + implements object storage on a single distributed computer + cluster, and provides interfaces for object-, block- and + file-level storage. Ceph aims primarily for completely + distributed operation without a single point of failure, + scalable to the exabyte level, and freely available.}} +\newglossaryentry{docker}{ + name={Docker}, plural={Dockers}, + description={ is a program that performs operating-system-level + virtualization also known as containerization. It is + developed by Docker, Inc. Docker is primarily developed for + Linux, where it uses the resource isolation features of the + Linux kernel such as cgroups and kernel namespaces, and a + union-capable file system such as OverlayFS and others to + allow independent "containers" to run within a single Linux + instance, avoiding the overhead of starting and maintaining + virtual machines (VMs).}} %%% END OF PREAMBLE %%% diff --git a/source/resources/SHA256SUM b/source/resources/SHA256SUM deleted file mode 100644 index a763eaf..0000000 --- a/source/resources/SHA256SUM +++ /dev/null @@ -1,82 +0,0 @@ -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ./SHA256SUM -b5fd0d24673c05a70026ca4db2576a80f8e8b4740e4558f29c63194a4ae58829 ./STATS -5c5bbe341a18319f6f24033c4f63fc5f1594469b4f2cfbb991ec596fd30e9a3b ./apps/ansible-debian-mail/ansible.cfg -b5f417e155b47834e49be9243ba776a6516c56c3ed0121d2bc4d022d5acacd87 ./apps/ansible-debian-mail/group_vars/all.yml -cc816d03579097542ca85c188995a412d619c08c84bf3dfef73191fc5cc05b54 ./apps/ansible-debian-mail/inventory.yml -95d75eba0703ebb00f12d01a821353fe1ddb7a5612a72ea2c4e658d2be5afb52 ./apps/ansible-debian-mail/roles/dkim_configuration/tasks/main.yml -4f83d988f9a305d6f7571f1742f8e284f0008182bcb21f3b8683594fd5de2340 ./apps/ansible-debian-mail/roles/dkim_configuration/templates/internalhosts.j2 -bf71aafad2295a773f5556ff870e4db70d62451a26fc952bde04336642f7afc2 ./apps/ansible-debian-mail/roles/dkim_configuration/templates/opendkim.conf.j2 -4069a27787b75f0af2ca555ff0f5668c2cbe6813909108a92c1583c4e82d2863 ./apps/ansible-debian-mail/roles/dkim_configuration/templates/opendkim.j2 -3d5208869831f657790c9642ea0ad63db2ad79d080d7d7ef24da0b802946b223 ./apps/ansible-debian-mail/roles/dkim_configuration/templates/opendmarc.conf.j2 -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ./apps/ansible-debian-mail/roles/dkim_configuration/templates/opendmarc.j2 -9252907b8d86ae437a9910148e6c72b2fce30be020a57ab3d59111fc5de5f6f7 ./apps/ansible-debian-mail/roles/dkim_configuration/templates/trustedhosts.j2 -218fc20617243fef6f783cd83332fa0fe9e610483bc2c2f1b1245e8eec0959ac ./apps/ansible-debian-mail/roles/dovecot_configuration/handlers/main.yml -f9d7c2c906c9f092d2dd973cc2c2e9ce9b4b5b01f2ec056f3095c6fc802c2d74 ./apps/ansible-debian-mail/roles/dovecot_configuration/tasks/main.yml -d7004417a7ac1d96e9904b05f68879a752dec6f7621bc56ed18434aabf78c40b ./apps/ansible-debian-mail/roles/dovecot_configuration/templates/10-master.conf.j2 -660790c32b47fd84326c6d53efcb13a2a6c691fa96d59c880aceadf71f8fa1f0 ./apps/ansible-debian-mail/roles/dovecot_configuration/templates/10-ssl.conf.j2 -8ebe1bb04c097e8371d63b6ac16c393ca74c094711942f2560252d482a0f17ce ./apps/ansible-debian-mail/roles/fail2ban_configuration/tasks/main.yml -817e705118fd6d92e7e89a84544ba907c71aa4395b3cb925fe4421b1b99add53 ./apps/ansible-debian-mail/roles/letsencrypt_configuration/tasks/main.yml -6920d48ae9610b5d0d61c9638d27e30b46b885777ab04127a198a380df12ae38 ./apps/ansible-debian-mail/roles/mikegleasonjr.firewall/.travis.yml -b8c8b8560eb577eb8637a446bc28aba7df05d34618093023a2b43f7764c75fb2 ./apps/ansible-debian-mail/roles/mikegleasonjr.firewall/Vagrantfile -c86227ad9775e213708a92703958d1ae8dc80b5073b665499839e4c80f0d77d5 ./apps/ansible-debian-mail/roles/mikegleasonjr.firewall/defaults/main.yml -c77f50cf2758025bece96792badbf0f98a799738be56e3dbd94d5c416ce402b5 ./apps/ansible-debian-mail/roles/mikegleasonjr.firewall/meta/main.yml -8df2fa6c72bad1a6b52a7e84a1dd5a850b96d3ed55c4266113c1476bbc1c974d ./apps/ansible-debian-mail/roles/mikegleasonjr.firewall/meta/.galaxy_install_info -5d1ebe1ec51a5a4b0ab52bbf1af63ca94af4290182755b2463aa321bfb39732f ./apps/ansible-debian-mail/roles/mikegleasonjr.firewall/tasks/main.yml -da08d16128d29e725a80590890592020a53d90cbeac3b55dbe67da63fc254e6b ./apps/ansible-debian-mail/roles/mikegleasonjr.firewall/tasks/persist-debian.yml -aaa130a6c8ad52ede70c2b12e46e27e61475e5d8b0842274b5ce0515ad645734 ./apps/ansible-debian-mail/roles/mikegleasonjr.firewall/tasks/persist-redhat.yml -6f28f53b5c77709268853ab1ba9f16ca30d64cd72dde08e9d9826b82c714e602 ./apps/ansible-debian-mail/roles/mikegleasonjr.firewall/tasks/rules.yml -1c8f8244b151f386933796a30c299f86d580880e16a7abba3653a1e3765a5394 ./apps/ansible-debian-mail/roles/mikegleasonjr.firewall/templates/generated.v4.j2 -b724ce42ef251f979751e080279d27c6f82e21f5c30118a731aacf3f8b494624 ./apps/ansible-debian-mail/roles/mikegleasonjr.firewall/templates/generated.v6.j2 -a7c2b3cd0f70c600c3e1db74d95533be3eb864853394c62330b5532c49abb572 ./apps/ansible-debian-mail/roles/mikegleasonjr.firewall/tests.yml -10734468f2c6744ef0fc14bb5f8d9678fb684d9647a981ab7dc93e81f6b3396b ./apps/ansible-debian-mail/roles/outputs/tasks/main.yml -3749fe155aa62adb30db35bedc96bdb47b1e094e8cc3b12e4915dc6137edcc43 ./apps/ansible-debian-mail/roles/postfix_configuration/files/auth_header_checks.pcre -13dd76df6148f7a898c8054f5566cbd351207a9bc5ae97ced9e4b5407af923a5 ./apps/ansible-debian-mail/roles/postfix_configuration/files/master.cf -a31d3860adb790e2ab6ee5763e2b59aa5b17b94f56cb7236845128f0e870e597 ./apps/ansible-debian-mail/roles/postfix_configuration/handlers/main.yml -cf7521b7366045753045ac11bdccc11857bc0c171a0fc1ba9c572fe7d59fd627 ./apps/ansible-debian-mail/roles/postfix_configuration/tasks/main.yml -5a101165ebf12cbd1663908e21f77dc2636fee45da36f5daa79ab84c47e7dfcb ./apps/ansible-debian-mail/roles/postfix_configuration/templates/aliases.j2 -5822b360aa9988efc37bdf5dd9626de45b2d1f279f70e032f5b56427994f440d ./apps/ansible-debian-mail/roles/server_tasks/handlers/main.yml -9482c99a24179cb4bcd0d8ea5bf6ac5e8391cd88b1242190693c685127bb94e8 ./apps/ansible-debian-mail/roles/server_tasks/tasks/main.yml -bc1d9877f592fe1b63385a38febee9ed7769cbb01972e73f950dcc6e5309ded0 ./apps/ansible-debian-mail/roles/spamassassin_configuration/tasks/main.yml -c85d3966f275654bfde3c1c5065980debe0be5900ad5b33f3bf19e893610b635 ./apps/ansible-debian-mail/roles/sqlgrey_configuration/tasks/main.yml -00b3b9b020bfd4ebe7732bf3a96a7dc5ce37c6788907f0574a193c3f5fcd0224 ./apps/ansible-debian-mail/site.yml -5c5bbe341a18319f6f24033c4f63fc5f1594469b4f2cfbb991ec596fd30e9a3b ./apps/ansible-gitea/ansible.cfg -cc816d03579097542ca85c188995a412d619c08c84bf3dfef73191fc5cc05b54 ./apps/ansible-gitea/inventory.yml -19aeb0ea8e30712f9589fd7037415118a92666d12ae30aa0757be6fde6357225 ./apps/ansible-gitea/roles/gitea/defaults/main.yml -4012e6484af750c9b21a8d9f04e68ddd291c37a8dd9657daa862124e480c2497 ./apps/ansible-gitea/roles/gitea/handlers/main.yml -28d0983feb2aba01934a25cad94e64e77c055e6a977bb2a0db9a8c199933b369 ./apps/ansible-gitea/roles/gitea/tasks/create_user.yml -7e6155085ebae67496b3267cdf3211fd3a7e0f178661ff21e20101947456912e ./apps/ansible-gitea/roles/gitea/tasks/install_systemd.yml -bc5f081dfd51f5c920c8dda1873560a2602204dd9d28a881238fd66e22437c2d ./apps/ansible-gitea/roles/gitea/tasks/main.yml -c8be571f2f2407240bc88997aedf70c9230554a65132ebab9a1ee0d4296ff9d3 ./apps/ansible-gitea/roles/gitea/templates/gitea.ini.j2 -0acbfe01156c9e39ee71a4fc64310ab003f09bfcf544df00b1f3cff010ed8f38 ./apps/ansible-gitea/roles/gitea/templates/gitea.service.j2 -20c921226115e5a92309d543b66066438e6565bdbd054e7ca41d0fc6ddcfcd9a ./apps/ansible-gitea/roles/nginx/defaults/main.yml -5a3990dbfb331c83fbbff76368a2426ae03d34052454aa6676f52b7e4652d561 ./apps/ansible-gitea/roles/nginx/handlers/main.yml -5232d5b0894c1e6a3da8472591ef49e9c80e927cdbec626c15c9e1a9796729a8 ./apps/ansible-gitea/roles/nginx/tasks/main.yml -1ecb64716e6674eb30a145c79859774cc5772304828553474c05820a2151ff3b ./apps/ansible-gitea/roles/nginx/templates/nginx.conf.j2 -4d7edebbe48f20aeeb49599d32fc5531db943cbf43d7e9995674c180b56f2e77 ./apps/ansible-gitea/roles/nginx/templates/nginxssl.conf.j2 -d74378b00af74eabe0cc11d0f0b1db5c902116c583216f14152d968e5a71e474 ./apps/ansible-gitea/site.yml -825577f3fd900576c119d0a6191de16bf2d55fb84e6749921710b293e5fd1889 ./apps/iptables/etc/iptables -4b50c760daa85619a74f1c635b26807fcc7f8bedb90bd22893de8c98f3d78ff1 ./apps/iptables/etc/iptables.test.rules -acb247e6caa20a6e5cac57de3137a6bd561f810e4b92d2e32d31064e4e998720 ./apps/oca-forksand-v1_1/README.rst -0f3d8a645a0f03d28bd72f8fe137a9aec2ca3b22bcd927f414d4b49236b1c630 ./apps/oca-forksand-v1_1/inventory -6e8f7eb1c3db664d243cfe1a5c2c06982979c1e3eed2d65a6a35eaa688de6e64 ./apps/oca-forksand-v1_1/playbook.yml -c8a9b53d477d7f2d9beb3a32451f6444525c2f515af4abc6ed3fc7bd0b0a049d ./apps/oca-forksand-v1_1/requirements.yml -03e673de76f6aece8473a8441b0c921368f675ea234b62fa58708427a1b69346 ./apps/oca/etc/init.d/openerp-server -a149aa2a11f17a20eda8f32e2ef5b34e403b772d53f1dcd2a62bd44b166c2122 ./apps/oca/lib/systemd/system/odoo-server.service -72d2cb138dfae349f5029b27dae74d13745061233fcebb79ef3d38eb4836183a ./apps/oca/oca11-addons -3d793228bd669725954044abb7901b38d6aa2fc397ee2d9fd65e46973a6e4365 ./apps/oca/oca-install.sh -36b8bf27d09d3f67387f1febc34212a137341d18d25da3e47767fe8e8a56054f ./apps/oca/oca-manual-modules -3d742d5b59b2a2d7e3c500be929d001bc3685b3a755ec8e913e82a90c87d58ec ./apps/oca/odoo9-modules -eec3af072498c00dd207f85d05de93ae81b4a0a6f4d31aa6b1dfb31af84eb07f ./apps/odoo/odoo11-deb-install.sh -3b4f786de5988810eb25f43800a180127676565460c1405fd3a427a564d7ae0e ./apps/sharkfork-bootstrap/forksand-sf-001-bootstrap -3509ed438def78ef75a44d9cff92d91c2822c8f08ae0933b2eb6c74fd366fc1b ./apps/sharkfork-bootstrap/forksand-sf-002-bootstrap -bcf25c40a6f6286747cf409b5531b8b5dab74bf9130ee9cd1509072a21e18e75 ./apps/sharkfork-bootstrap/forksand-sf-003-bootstrap -e9d1882ecb7401d9424e4147594eb96ccf36707e63b11f4d47a5be50d35cc01d ./apps/sharkfork-bootstrap/forksand-sf-004-bootstrap -4fa25490d18e693db532a147146bb9751d960ef732fc8ed859089dd5522f05f2 ./apps/sharkfork-bootstrap/forksand-sf-proxmox -8e0ee0af15f20e6a5120f9bca4b073532002f8d309dc365c64734b111c03ae4e ./apps/ssh/socks-chain.sh -646c3cdef108cf891d9d5279971f3da8a708d78b9cb18da832043ba3048cfacf ./apps/ssh/socks-proxy.sh -1802daa96fe2a7373059b86ae166f008591aad4304eb8176e1c20f56e61e7df8 ./apps/yadifa-master/etc/yadifa/yadifad.conf -e2c4028695f3ac6b6ed8afb963a7821589b94ed81a2d068d7480b809d402c830 ./apps/yadifa-master/var/lib/yadifa/masters/solipsists.org.zone -705f36a12aee30e8510e5d06f1d3dd471a82aa518e00648a83f8f9d1146b8186 ./apps/yadifa-slave/etc/yadifa/yadifad.conf -1966009066a265b65574003bc5f338ee4c2595c010ece34e9e428c526b974fd5 ./apps/yadifa/var/lib/yadifa/masters/0.0.127.in-addr.arpa.zone -93847412dc586aa627b7c8d9c7f9f08223d62bd7297bb02058b57aaa4e92e220 ./apps/yadifa/var/lib/yadifa/masters/localhost.zone -28dff76725cfbe3e4dcf70120f0393422507443fa5b6a62e1814bd44fb62161e ./txt2qrpng.sh diff --git a/source/resources/STATS b/source/resources/STATS deleted file mode 100644 index 14c1509..0000000 --- a/source/resources/STATS +++ /dev/null @@ -1,2 +0,0 @@ -There are 82 source code files included. -There are 79 unique files. diff --git a/source/resources/drawings/sharkfork-wire-alt.jpg b/source/resources/drawings/sharkfork-wire-alt.jpg new file mode 100644 index 0000000..cd1059d Binary files /dev/null and b/source/resources/drawings/sharkfork-wire-alt.jpg differ diff --git a/source/resources/drawings/sharkfork-wire-alt.pdf b/source/resources/drawings/sharkfork-wire-alt.pdf deleted file mode 100644 index 45d2dbf..0000000 Binary files a/source/resources/drawings/sharkfork-wire-alt.pdf and /dev/null differ diff --git a/source/resources/drawings/sharkfork-wire-alt.png b/source/resources/drawings/sharkfork-wire-alt.png deleted file mode 100644 index 58d2f8b..0000000 Binary files a/source/resources/drawings/sharkfork-wire-alt.png and /dev/null differ diff --git a/source/resources/drawings/sharkfork-wire-alt.svg b/source/resources/drawings/sharkfork-wire-alt.svg new file mode 100644 index 0000000..3fe4d62 --- /dev/null +++ b/source/resources/drawings/sharkfork-wire-alt.svg @@ -0,0 +1,2 @@ + +
Copyright 2018, Fork Sand, Inc.
CC By SA International 4.0
[Not supported by viewer]
SharkTech
Ethernet Wiring Diagram
FORK SAND, Inc.

[Not supported by viewer]
SharkTech
Firewall
[Not supported by viewer]
Internet
[Not supported by viewer]
SHARKFORK
[Not supported by viewer]
sf-fw1
[Not supported by viewer]
sf-fw2
[Not supported by viewer]
SharkTech Internet Switch
[Not supported by viewer]
Filesystem1
10G Switch
[Not supported by viewer]
Internet
10G Switch
[Not supported by viewer]
SharkTech IPMI Switch
[Not supported by viewer]
sf-004 --- Iris NV2225 Fileserver
<span><font style="font-size: 24px">sf-004 --- Iris NV2225 Fileserver</font></span>
sf-003 --- Iris NV1211 Fileserver
[Not supported by viewer]
sf-002 --- Iris 1292-R4T Proxmox
[Not supported by viewer]
sf-001 --- Iris 1292-R4T Proxmox
<font><span><font style="font-size: 24px">sf-001 --- Iris 1292-R4T Proxmox<br></font></span></font>
Migration
10G Switch
[Not supported by viewer]
Corosync2
10G Switch
[Not supported by viewer]
Corosync1
10G Switch
[Not supported by viewer]
Admin/IPMI
1G Switch
[Not supported by viewer]
IPMI
10.7.7.0/24
[Not supported by viewer]
Server Internet
<span><font style="font-size: 24px">Server Internet</font></span>
Filesystem1
10.99.1.0/24
[Not supported by viewer]
SharkFork Upstream
174.128.244.192/26
<span><font style="font-size: 24px">SharkFork Upstream<br>174.128.244.192/26<br></font></span>
SharkFork Firewall
[Not supported by viewer]
Migration
10.68.68.0/24
[Not supported by viewer]
Corosync1
10.3.1.0/24
[Not supported by viewer]
SharkTech Backbone
0.0.0.0/0
<font size="1"><span style="font-size: 24px">SharkTech Backbone<br>0.0.0.0/0</span></font>
Corysync2
10.3.2.0/24
[Not supported by viewer]
Filesystem2
10G Switch
[Not supported by viewer]
Filesystem2
10.99.2.0/24
[Not supported by viewer]
\ No newline at end of file diff --git a/source/resources/drawings/sharkfork-wire-alt.xml b/source/resources/drawings/sharkfork-wire-alt.xml index 8cfb4d7..df7cfe5 100644 --- a/source/resources/drawings/sharkfork-wire-alt.xml +++ b/source/resources/drawings/sharkfork-wire-alt.xml @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/source/resources/make-sources-list.sh b/source/resources/make-sources-list.sh index 655bf97..acc5096 100755 --- a/source/resources/make-sources-list.sh +++ b/source/resources/make-sources-list.sh @@ -14,7 +14,7 @@ CODEDIR="$rootPath/source/resources" cd "$CODEDIR" || exit TEXOUT="$rootPath/source/Source-gen.tex" # Build a grep exclude command that has file extensions to not include. -EXCLUDE="\./\.git \.csv$ \.eps \.git$ \.gz$ \.jpg$ \.ods$ \.ods\#$ \.png$ \.pdf$ \.swp$ \.tmp$ \.xml$ \.aux$ \.fuse_hidden.*$ \.glo$ \.gls$ \.idx$ \.ilg$ \.ind$ \.lof$ \.log$ \.lol$ _minted-.*$ \.old$ \.out$ \.swp$ \.toc$ \.zip$ \..*GPLv3.*$ LICENSE$ README.md$ \.tar$ \.tar\.bz2$ \.gitignore make-sources-list\.sh$ Thumbs\.db$ \.DS_Store$ \.git.*$" +EXCLUDE="\./\.git \.csv$ \.eps \.git$ \.gz$ \.jpg$ \.ods$ \.ods\#$ \.png$ \.pdf$ \.swp$ \.svg$ \.tmp$ \.xml$ \.aux$ \.fuse_hidden.*$ \.glo$ \.gls$ \.idx$ \.ilg$ \.ind$ \.lof$ \.log$ \.lol$ _minted-.*$ \.old$ \.out$ \.swp$ \.toc$ \.zip$ \..*GPLv3.*$ LICENSE$ README.md$ \.tar$ \.tar\.bz2$ \.gitignore make-sources-list\.sh$ Thumbs\.db$ \.DS_Store$ \.git.*$" EXCLUDEGREP="grep -v -i " for i in $EXCLUDE do EXCLUDEGREP="$EXCLUDEGREP -e $i" @@ -55,6 +55,9 @@ echo "There are `cat SHA256SUM.tmp | cut -f 1 -d " " | sort -u | wc -l` unique f rm SHA256SUM.tmp +echo "current path: $PWD" +ssconverter spreadsheets/sharkfork.ods@"SHARKFORK Order" spreadsheets/sharkfork_order.csv + # Files not rendered #echo "\section{Not Rendered}" >> $TEXOUT #echo "The files listed in this section were not rendered." >> $TEXOUT diff --git a/source/resources/spreadsheets/sharkfork_order.csv b/source/resources/spreadsheets/sharkfork_order.csv new file mode 100644 index 0000000..104475c --- /dev/null +++ b/source/resources/spreadsheets/sharkfork_order.csv @@ -0,0 +1,33 @@ +To Buy,Model,RAM,CPU,Storage,Disks,Rack U,10G,1G,IPMI 1G,Power,Quote $,$/RAM,$/Ghz,$/Gig,Ordered,Supplier,PO,Status,Comments +Servers,,,,,,,,,,,,,,,,,,, +sf-fw1,Iris FW1100,16,27.2,128,1,1,8,0,1,XXX,4064.38,254.02375,149.425735294118,31.75296875,4064.38,PogoLinux,,Received,2x SPF+ +sf-fw2,Iris FW1100,16,27.2,128,1,1,8,0,1,XXX,4064.38,254.02375,149.425735294118,31.75296875,4064.38,PogoLinux,,Received,2x SPF+ +sf-004,Iris NV2225,128,48,3700,5,2,6,0,1,XXX,13837.99,108.109296875,288.291458333333,3.7399972972973,13837.99,PogoLinux,,Received, +sf-003,Iris NV1211,64,44,5300,7,1,6,0,1,XXX,12542.37,195.97453125,285.053863636364,2.36648490566038,12542.37,PogoLinux,,Received, +sf-002,Iris 1292-R4T,128,33.6,24000,4,1,6,0,1,XXX,6364.42,49.72203125,189.417261904762,0.265184166666667,6364.42,PogoLinux,,Received, +sf-001,Iris 1292-R4T,128,33.6,24000,4,1,6,0,1,XXX,6364.42,49.72203125,189.417261904762,0.265184166666667,6364.42,PogoLinux,,Received, +,,,,,,,,,,,,,,,,,,, +Shipping,,,,,,,,,,,,,,,446,,,, +Subtotal,,480,213.6,57256,22,7,40,0,6,0,47237.96,,,,47683.96,,,, +,,,,,,,,,,,,,,,,,,, +Switches,,,,,,,,,,,,,,,,,,, +admin / ipmi,Netgear Prosafe S3300-28X,,,,,1,2,26,0,,586.98,,,,586.98,Amazon,,Received,28-Port 1 Gigabit Switch +DMZ,Netgear ProSafe XS716T,,,,,1,16,0,,,1129.89,,,70.618125,1129.89,Amazon,,Received,16-Port 10 Gigabit Switch +Filesystem 1,Netgear ProSafe XS716T,,,,,1,16,0,,,1129.89,,,70.618125,1129.89,Amazon,,Received,16-Port 10 Gigabit Switch +Filesystem 2,Netgear ProSafe XS716T,,,,,1,16,0,,,1104,,,69,1104,Amazon,,Received,16-Port 10 Gigabit Switch +Corosync 1,Netgear ProSafe XS716T,,,,,1,16,0,,,1129.89,,,70.618125,1129.89,Amazon,,Received,16-Port 10 Gigabit Switch +Corosync 2,Netgear ProSafe XS716T,,,,,1,16,0,,,1129.89,,,70.618125,1129.89,Amazon,,Received,16-Port 10 Gigabit Switch +Migration,Netgear ProSafe XS716T,,,,,1,16,0,,,1129.89,,,70.618125,1129.89,Amazon,,Ordered,16-Port 10 Gigabit Switch +,,,,,,,,,,,,,,,,,,, +Subtotal,,,,,,7,98,26,0,,7340.43,,,,7340.43,,,, +,,,,,,,,,,,,,,,,,,, +Patch cables & Panels,,,,,,,,,,,,,,,,,,, +Ethernet Cables,Various CAT 7,,,,,,,,,,400,,,,400,Amazon,,Ordered,Need patch cables of different colors & lengths +Power Cables,Various,,,,,,,,,,250,,,,250,Amazon,,Ordered, +,,,,,,,,,,,,,,,,,,, +Subtotal,,,,,,,,,,,650,,,,650,,,, +,,,,,,,,,,,,,,,,,,, +Totals,,480,213.6,57256,22,14,,,12,0,55228.39,,,,55674.39,,,, +Monthly (36 months),,,,,,,,,,,1534.12194444444,,,,,,,, +Colocation,,,,,,,,,,,850,XXX,,,,,,, +Monthly Total,,,,,,,,,,,2384.12194444444,,,,,,,,