diff options
author | Karel Kočí <cynerd@email.cz> | 2017-10-17 07:59:09 +0200 |
---|---|---|
committer | Karel Kočí <cynerd@email.cz> | 2017-10-17 07:59:09 +0200 |
commit | 4555491b5fdb3f38c731e409c2f98b46ac675efa (patch) | |
tree | 80b2769cde260fd08642e828440a836cbad9d4b0 /installfest2017/pres.tex | |
parent | 8f1a06dc1f65e0827a0f14e1193b01b97db52ad2 (diff) | |
download | presentations-4555491b5fdb3f38c731e409c2f98b46ac675efa.tar.gz presentations-4555491b5fdb3f38c731e409c2f98b46ac675efa.tar.bz2 presentations-4555491b5fdb3f38c731e409c2f98b46ac675efa.zip |
Some directory movements
Diffstat (limited to 'installfest2017/pres.tex')
-rw-r--r-- | installfest2017/pres.tex | 304 |
1 files changed, 0 insertions, 304 deletions
diff --git a/installfest2017/pres.tex b/installfest2017/pres.tex deleted file mode 100644 index 1c36c4c..0000000 --- a/installfest2017/pres.tex +++ /dev/null @@ -1,304 +0,0 @@ -\documentclass{beamer} -\usetheme{metropolis} -\usepackage{lmodern} -\usepackage[czech]{babel} -\usepackage[utf8x]{inputenc} -%\usepackage[utf8]{inputenc} -\usepackage[T1]{fontenc} -\usepackage{graphicx} -\usepackage{wrapfig} -\usepackage{color} -\usepackage{mathtools} -\usepackage{hyperref} -\usepackage{epstopdf} -\usepackage{svg} -\usepackage{amsmath} -\usepackage{minted} -\hypersetup{ - colorlinks, - citecolor=black, - filecolor=black, - linkcolor=black, - urlcolor=black -} -\usepackage{pdflscape} - -\title{3 problémy při práci na 3 počítačích} -\author{Karel Kočí} -\date{4.3.2017} - -\begin{document} - -\frame{\titlepage} - -\begin{frame} - \begin{block}{\huge Napiš si skript!} - Přednášené skripty a více naleznete na: - \url{https://github.com/Cynerd/myconfigs} - \end{block} -\end{frame} - -\begin{frame} - \frametitle{3 problémy} - \begin{itemize} - \item Synchronizace souborů - \item Synchronizace a správa konfigurací - \item Správa systému - \end{itemize} -\end{frame} - -\begin{frame} - \frametitle{Synchronizace souborů} - \def\svgwidth{1cm} - \input{face_sad.pdf_tex} - \begin{itemize} - \item Dropbox - \item Mega - \item Google drive - \item \ldots - \end{itemize} - - \def\svgwidth{1cm} - \input{face_cry.pdf_tex} - \begin{itemize} - \item Owncloud/Nextcloud - \end{itemize} - - \def\svgwidth{1cm} - \input{face_happy.pdf_tex} - \begin{itemize} - \item Syncthing - \end{itemize} -\end{frame} - -\begin{frame} - \frametitle{``Easy to use'' říkají} - \includegraphics[width=11cm]{syncthing.png} -\end{frame} - -\begin{frame} - \frametitle{Matematický problém} - Přidání zařízení mezi N synchronizujících M složek. - - \begin{itemize} - \item Nastav nové zařízení - \item $N$-krát přidej zařízení - \item $N$-krát spáruj s novým zařízením - \item $N \times M$ přidej k synchronizovaným složkám - \item $M$-krát přidej složku na novém zařízení - \end{itemize} - - \vspace{0.4cm} - \[ - 1+\left(M+2\right)N+M - \] -\end{frame} - -\begin{frame} - \frametitle{Moje zařízení} - \def\svgwidth{27cm} - \input{scheme.pdf_tex} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Syncthing konfigurace hodně zjednodušeně} - \small - \begin{minted}{xml} -<configuration version="18"> - <folder id="a" label="A" path="/home/user/a/"> - <device id="0000000-0000000-.."></device> - <device id="1111111-1111111-.."></device> - </folder> - <folder id="b" label="B" path="/home/user/b/"> - <device id="0000000-0000000-.."></device> - <device id="1111111-1111111-.."></device> - </folder> - <device id="0000000-0000000-.." name="cynerd-pc"> - <address>dynamic</address> - </device> - <device id="1111111-1111111-.." name="server"> - <address>tcp://cynerd.cz</address> - </device> -</configuration> -\end{minted} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Napiš si skript, vstupní data} - \begin{minted}{bash} -# Syncthing PC id -ID="0000000-0000000-0000000-0000000-.." -# Name of machine -NAME="cynerd-pc" -# Address to machine, can be tcp://address.com or dynamic -ADDRESS="dynamic" - -# Directoris to be synchronized -# Format is ID:PATH -DIRS="Sync:/home/user/Sync -Sync2:/home/user/SyncIt" - -# REST api key -APIKEY="bT6dCxEds9JPwiXMXavGNsXsz7ZFpSC5" -\end{minted} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Napiš si skript, generuj zařízení do XML} - \begin{minted}{bash} -# ... -for h in syncthing/*; do - -. "$h" # Source host -# Set to configuration -echo "<device id=\"$ID\" name=\"$NAME\">" >>$TMPCNF -echo "<address>$ADDRESS</address>" >>$TMPCNF -echo "</device>" >>$TMPCNF -# Parse DIRS of this host -eval `echo "$DIRS" | sed -ne \ -'s/^\([^:]*\):.*$/ST_DIR_HOSTS_\1="$ST_DIR_HOSTS_\1 $ID"/p'` - -done -# ... -\end{minted} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Napiš si skript, generuj složky do XML} - \begin{minted}{bash} -# ... -. syncthing/"$HOST" -while read -r d; do -NM="$(echo "$d" | sed 's/:.*$//')" # Directory name -PTH="$(echo "$d" | sed 's/^[^:]*://')" # Get target path -# Write folder init -echo "<f id=\"$NM\" label=\"$NM\" path=\"$PTH\">" >>$TMPCNF -# Specify every all devices -for dev in eval `echo \$ST_DIR_HOSTS_$NM`; do - echo "<device id=\"$dev\"></device>" >>$TMPCNF -done -# ... -done <<<"$DIRS" -# ... -\end{minted} -\end{frame} - -\begin{frame} - \frametitle{Moje řešení} - - \begin{itemize} - \item Nastav nové zařízení - \item Přidej do sdílené konfigurace - \item N-krát deploy konfigurace - \end{itemize} - - \vspace{0.4cm} - \[ - 2+N < 1+\left(M+2\right)N+M - \] -\end{frame} - -\begin{frame} - \frametitle{Synchronizace konfigurace} - \includegraphics[width=3cm]{git.eps} - - \vspace{1cm} - \begin{block}{\$HOME dot soubory} - 3 zařízení 3 různé požadavky - \begin{itemize} - \item Laptop, OpenRC, Bumblebee, 2 disky - \item Laptop, OpenRC - \item Desktop, Systemd - \end{itemize} - \end{block} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Skriptujeme jednoduše} - \begin{minted}{bash} -# install.sh -cd `dirname $0` -rsync -rlpt bashrc ~/.bashrc -rsync -rlpt profile ~/.profile - - -# get.sh -cd `dirname $0` -rsync -rlpt ~/.bashrc bashrc -rsync -rlpt ~/.profile profile -\end{minted} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Skriptujeme s vimdiff} - \begin{minted}{bash} -cd `dirname $0` -checkdiff() { - for f in `find "$1" -type f`; do - if ! cmp "$1" "$f" >/dev/null; then - F="${f#$1}" - vimdiff "$1/$F" "$2/$F" - fi - done -} -inst() { - [ -e "$2" ] && checkdiff "$1" "$2" \ - || rsync -rlpt "$1" "$2" -} -inst bashrc ~/.bashrc -\end{minted} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Skriptujeme skupinky} - \begin{minted}{bash} -# ... - -read -p "Install bashrc? (Y/n) " -if [[ $REPLY =~ ^[Yy]?$ ]]; then - inst bashrc ~/.bashrc - inst profile ~/.profile -fi - -read -p "Install VIM scripts? (Y/n) " -if [[ $REPLY =~ ^[Yy]?$ ]]; then - inst vimrc ~/.vimrc - inst vim ~/.vim -fi - -\end{minted} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Balíčky jako konfigurace} - Pro Archlinux: - \begin{minted}{bash} -sudo pacman -D --asdeps pkg -sudo pacman -D --asexplicit pkg -\end{minted} - - \begin{minted}{bash} -m4 archlinux.pkgs | sort | uniq > /tmp/file1 -pacaur -Qqe | sort > /tmp/file2 -diff --supppress-common-lines -ay /tmp/file1 /tmp/file2 -\end{minted} -\end{frame} - -\begin{frame} - \frametitle{Závěrem} - \begin{itemize} - \item Jeden git repositář s konfigurací - \item Skript pro přesun změn v konfiguračních souborech z a do repositáře - \item Skript porotnání explicitně nainstalovaných balíčků - \item Skript pro generování Syncthing konfigurace - \end{itemize} -\end{frame} - -\begin{frame} - \begin{block}{\large Děkuji za pozornost} - \end{block} - \url{https://github.com/Cynerd/myconfigs} - % TODO -\end{frame} - -\end{document} |