Pagini
Workshops
Parteneri
This is an old revision of the document!
* Pe swarm
~/git-repos/
și, dacă nu există, directorul ~/public_html/
.~/git-repos/
și creați repository-ul workshop-blog.git
. Folosiți comanda:git init --bare workshop-blog.git
~/public_html/
și creați directorul workshop-blog/
:mkdir public_html cd public_html mkdir workshop-blog
http://swarm.cs.pub.ro/~<username-de-pe-swarm>/workshop-blog/
, unde <username-de-pe-swarm>
este numele vostru de utilizator de pe swarm.~/git-repos/workshop-blog.git/hooks/post-receive
cu conținutul de mai jos (dacă fișierul există, suprascrieți-i conținutul; fișierul post-receive.sample
nu are o legătură directă cu post-receive
):#!/bin/bash # # Jekyll post-receive hook # Publish information from repository (GIT_REPO) to public web folder (PUBLIC_WWW). # # https://github.com/mojombo/jekyll/ # https://github.com/mojombo/jekyll/wiki/Deployment # GIT_REPO=$HOME/git-repos/workshop-blog.git TMP_GIT_CLONE=/tmp/$USER-workshop-blog-clone PUBLIC_WWW=$HOME/public_html/workshop-blog GIT=/usr/bin/git JEKYLL=/var/lib/gems/1.8/bin/jekyll $GIT clone $GIT_REPO $TMP_GIT_CLONE $JEKYLL --no-auto --base-url /~$USER/workshop-blog --url http://swarm.cs.pub.ro/~$USER/workshop-blog $TMP_GIT_CLONE $PUBLIC_WWW rm -fr $TMP_GIT_CLONE
post-receive
:chmod a+x ~/git-repos/workshop-blog.git/hooks/post-receive
workshop-blog.git
:git init workshop-blog.git git config --global user.name "Prenume Nume" git config --global user.email "email@nomail.me" git config --global color.ui auto
start-jekyll
, DOAR conținutul său) în directorul creat (workshop-blog.git
).grep -nriH razvan .
_posts/
al repository-ului creați fișierul 2014-06-18-first-post.markdown
cu un conținut similar celui de mai jos:--- layout: post date: 2014-06-18 title: Wednesday, June 18, 2014 --- * I never make mistakes. * I thought I did once. * But I was wrong.
pwd
). Adăugați conținutul în repository:git add . git commit -m 'Add Jekyll basic structure files'
-m
) ori de câte ori faceți alte commit-uri.git remote add origin <username-de-pe-swarm>@swarm.cs.pub.ro:git-repos/workshop-blog.git
post-receive
și a publicării informațiilor:git push origin master
http://swarm.cs.pub.ro/~<username-de-pe-swarm>/workshop-blog/
.
* NFS Folosiți contul de root pentru instalare, configurare și folosire NFS. *# Instalați serverul de NFS:<code bash> apt-get install nfs-kernel-server nfs-common rpcbind </code> *# Creați un director export} pe care să îl partajați prin NFS. *#* Pentru a partaja, adăugați linia de mai jos în fișierul exports}:<code> /home/student/export *(rw,sync,no_subtree_check) </code> *#* După editare, marcați export-ul:<code bash> exportfs -ra </code> *#* Pentru a vizualiza export-urile folosiți comanda<code bash> exportfs </code> *#* Dacă apar probleme pe parcurs, reporniți serverul NFS<code bash> /etc/init.d/nfs-kernel-server restart </code> *# Creați două directoare left} și right} în care montați share-urile colegilor din stânga și dreapta<code bash> mount <IP-left>:/home/student/export/ /home/student/left/ mount <IP-right>:/home/student/export/ /home/student/right/ </code> unde ip-left} este adresa IP a colegului din stânga, iar ip-right} adresa IP a colegului din dreapta. *#* Folosiți comanda<code bash> ip a s </code> pentru a afla adresa IP proprie pe care să o comunici colegilor. *#* Este vorba de adresa interfeței eth0}. *#* Verificați conectivitatea folosind:<code bash> ping <IP-stanga> ping <IP-dreapta> </code> * Verificați că puteți crea, edita și șterge fișiere din directoarele montate, iar aceste modificări sunt vizibile și pentru colegii voștri.
=== Allow interconnection and interoperability ===
* Obiective Dorim să exemplificăm folosirea ldapsearch
pentru interogarea de informații LDAP. Dorim să activăm autentificarea prin LDAP pentru pagina de wiki configurată în sesiunea de eficiență. Urmărim să configurăm containerul LXC să realizeze autentificarea prin LDAP. * Pentru aceasta trebuie configurat sistemul de login (prin intermediul PAM) să folosească LDAP.
* LDAP Folosiți, pe swarm, comenzi de interogare LDAP:
ldapsearch -LLL -x # toate informațiile disponibile ldapsearch -LLL -x uid # UID-urile utilizatorilor ldapsearch -LLL -x uid=razvan # informații despre utilizatorul cu UID-ul razvan ldapsearch -LLL -x sn=M* # informații despre utilizatori ai căror nume începe cu litera M ldapsearch -LLL -x '(&(givenName=*a)(sn=M*))' # idem + ai căror prenume se termina cu litera a
Pe instanța DokuWiki configurată în sesiunea de eficiență, configurați acces LDAP. # Adăugați, în ~/public_html/dokuwiki/conf/local.php
, conținutul de mai jos:
$conf['authtype'] = 'ldap'; $conf['auth']['ldap']['port'] = '636'; $conf['auth']['ldap']['server'] = 'ldaps://swarm.cs.pub.ro'; $conf['auth']['ldap']['usertree'] = 'ou=People,dc=swarm,dc=cs,dc=pub,dc=ro'; $conf['auth']['ldap']['grouptree'] = 'dc=swarm,dc=cs,dc=pub,dc=ro'; $conf['auth']['ldap']['userfilter'] = '(&(uid=%{user})(objectClass=posixAccount))'; $conf['auth']['ldap']['groupfilter'] = '(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))'; $conf['auth']['ldap']['version'] = '3';
# Verificați ca vă puteți autentifica pe dokuwiki folosind username-ul și parola de pe swarm. Autentificare Unix prin LDAP. * Toate comenzile următoare trebuie rulate în containerul LXC # Folosiți container-ul LXC dedicat; conectați-vă ca root
:
ssh -l root -p 4<id-container>22 houdini.grid.pub.ro
# Instalați bibliotecile LDAP și aplicațiile de tip client:<code bash> apt-get install ldap-utils </code> # Configurați în containerul LXC serverul de LDAP de pe swarm ca server implicit folosit de clienții LDAP. Editați fișierul /etc/ldap/ldap.conf
pentru a avea următorul conținut (nu uitați de :set paste
în Vim):
# LDAP Defaults # # See ldap.conf(5) for details # This file should be world readable but not world writable. BASE dc=swarm,dc=cs,dc=pub,dc=ro URI ldaps://swarm.cs.pub.ro #SIZELIMIT 12 #TIMELIMIT 15 #DEREF never TLS_REQCERT never
#* Verificați funcționarea conexiunii la serverul LDAP, folosind comanda ldapsearch}:<code bash post-receive> ldapsearch -x -LLL uid=<username-de-pe-swarm> </code> #* <username-de-pe-swarm>
este numele vostru de utilizator de pe swarm.cs.pub.ro
. # Pentru configurarea NSS (Name Service Switch), trebuie instalat și configurat pachetul libnss-ldap}. Instalați pachetul libnss-ldap} și opțiunile:<code bash> apt-get install libnss-ldap
LDAP server URI: ldaps:swarm.cs.pub.ro Distinguished name of the search base: dc=swarm,dc=cs,dc=pub,dc=ro LDAP version to use: 3 Does the LDAP database require login?: No Special LDAP privileges for root?: Yes Make the configuration file readable/writable by its owner only?: No LDAP account for root: cn=admin,dc=swarm,dc=cs,dc=pub,dc=ro LDAP account password: TODO LDAP administrative account: cn=admin,dc=swarm,dc=cs,dc=pub,dc=ro LDAP administrative password: TODO </code> #* Vă spune Bogdan răspunsul la todo}. # Verificați că ați configurat corespunzător prin rularea comenzii<code bash> cat /etc/libnss-ldap.conf | grep -v '^#' | grep -v '^$' </code> și obținerea rezultatului<code> base dc=swarm,dc=cs,dc=pub,dc=ro uri ldaps:swarm.cs.pub.ro/ ldap_version 3 rootbinddn cn=admin,dc=swarm,dc=cs,dc=pub,dc=ro </code> # Configurați în /etc/nsswitch.conf
intrările passwd
, group
și shadow
:
passwd: compat ldap group: compat ldap shadow: compat ldap
# Reporniți daemonul nscd}:<code bash> /etc/init.d/nscd restart </code> #* Verificați configurarea prin rularea comenzilor:
getent passwd <username-de-pe-swarm> id <username-de-pe-swarm> apt-get install finger finger <username-de-pe-swarm>
unde <username-de-pe-swarm>
este numele vostru de utilizator de pe swarm.cs.pub.ro
. Toate aceste comenzi ar trebui sa întoarcă informații despre user-ul vostru de pe swarm. # Pentru autentificarea utilizatorilor prin LDAP trebuie configurat corespunzător pam}. L-ați configurat (în cadrul pachetului libpam-ldap} la instalarea pachetului libnss-ldap}. Verificați configurarea sa prin rularea comenzii<code bash> cat /etc/pam_ldap.conf | grep -v '^#' | grep -v '^$' </code> care trebuie să dea rezultatul<code> base dc=swarm,dc=cs,dc=pub,dc=ro uri ldaps:swarm.cs.pub.ro/ ldap_version 3 rootbinddn cn=admin,dc=swarm,dc=cs,dc=pub,dc=ro pam_password crypt </code> # Verificați configurarea corespunzătoare a fișierelor common-account} (account-required}) și common-auth} (auth-required}) (e vorba de prezența pam_ldap.so}):<code bash> root@rsw-sysadmin-00:~# cat /etc/pam.d/common-account | grep -v '^#' | grep -v '^$' account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so account [success=1 default=ignore] pam_ldap.so account requisite pam_deny.so account required pam_permit.so
root@rsw-sysadmin-00:~# cat /etc/pam.d/common-auth | grep -v '^#' | grep -v '^$' auth [success=2 default=ignore] pam_unix.so nullok_secure auth [success=1 default=ignore] pam_ldap.so use_first_pass auth requisite pam_deny.so auth required pam_permit.so </code> # Ca root activați modulul PAM mkhomedir} pentru crearea home-ului utilizatorului la autentificare. Adăugați ca root, la finele fișierului common-session}, linia:<code> session required pam_mkhomedir.so skel=/etc/skel/ umask=0022 </code> # Schimbați utilizatorul în utilizatorul de pe swarm.cs.pub.ro}:<code> su - <username-de-pe-swarm> </code> Observați crearea directorului home pentru utilizator. # Adăugați cheia publică SSH de pe sistemul din laborator în contul utilizatorului nou creat. #* Copiați cheia publică în fișierul authorized_keys} din home-ul utilizatorului. Verificați conectarea prin SSH de pe sistemul din laborator:<code> ssh -l <username-de-pe-swarm> -p 4<id-container>22 houdini.cs.pub.ro </code>