Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
sesiuni:sysadmin:centralizare [2014/06/17 15:13]
bpurcareata [Prefer text over binary]
sesiuni:sysadmin:centralizare [2014/07/09 18:47]
razvan [Allow interconnection and interoperability]
Line 9: Line 9:
 </​html>​ </​html>​
  
-== Idei ==+== Idei și discuții==
  
 * Less is more. * Less is more.
 * Prefer text over binary. * Prefer text over binary.
 +** Wiki, repository
 +** File-based wikis
 * Centralize, backup and secure. * Centralize, backup and secure.
 +** Computer clusters
 +** iSCSI (Internet Small Computer System Interface), FiberChannel
 * Allow interconnection and interoperability. * Allow interconnection and interoperability.
 +** LDAP (Lightweight Directory Access Protocol)
 +** RADIUS (Remote Authentication Dial-In User Service)
 * Use versioning. * Use versioning.
 +** Gitolite - authorization layer on top of Git
 * Allow access from anywhere on any device. * Allow access from anywhere on any device.
 +** Dropbox - vedeți exercițiul 7 din [[:​sesiuni:​sysadmin:​eficienta#​demo-uri|demo-urile sesiunii de Eficiență]].
 +** Web, DAV (Distributed Authoring and Versioning),​ e-mail, LDAP
  
 == Demo == == Demo ==
  
-* **Înainte de toate**: Copiați perechea de chei SSH din contul vostru de pe {{{swarm.cs.pub.ro}}} local:<​code bash> 
-scp <​username-de-pe-swarm>​@swarm.cs.pub.ro:​.ssh/​id_rsa* ~/.ssh/ 
-</​code>​ unde {{{<​username-de-pe-swarm>​}}} este utilizatorul vostru de pe {{{swarm.cs.pub.ro}}}. 
  
 === Prefer text over binary === === Prefer text over binary ===
Line 29: Line 35:
 ** Configurarea un blog/site bazat pe [[https://​github.com/​mojombo/​jekyll/​|jekyll]] pe swarm. ** Configurarea un blog/site bazat pe [[https://​github.com/​mojombo/​jekyll/​|jekyll]] pe swarm.
 ** Publicarea conținutului unui repository printr-un [[http://​git-scm.com/​book/​en/​Customizing-Git-Git-Hooks|hook Git]]. ** Publicarea conținutului unui repository printr-un [[http://​git-scm.com/​book/​en/​Customizing-Git-Git-Hooks|hook Git]].
-* Discuții:​ +
-** Wiki, repository +
-** File-based wikis+
 * **Pe swarm** * **Pe swarm**
 *# Creați directorul {{{~/​git-repos/​}}} și, dacă nu există, directorul {{{~/​public_html/​}}}. *# Creați directorul {{{~/​git-repos/​}}} și, dacă nu există, directorul {{{~/​public_html/​}}}.
-*# Intrați în directorul {{{~/​git-repos/​}}} și creați repository-ul {{{workshop-blog.git}}}. Folosiți comanda:<​code bash>+*# Accesați directorul {{{~/​git-repos/​}}} și creați, în cadrul acestui director, ​repository-ul {{{workshop-blog.git}}}. Folosiți comanda:<​code bash>
 git init --bare workshop-blog.git git init --bare workshop-blog.git
 </​code>​ </​code>​
-*# Intrați în directorul {{{~/​public_html/​}}} și creați ​directorul ​{{{workshop-blog/​}}}.+*# Accesați directorul {{{~/​public_html/​}}} și creați, în cadrul acestui director, subdirectorul ​{{{workshop-blog/​}}}:<code bash> 
 +mkdir public_html 
 +cd public_html 
 +mkdir workshop-blog 
 +</​code>​
 *#* Aici va fi publicat conținutul blog-ului. *#* Aici va fi publicat conținutul blog-ului.
 *#* Accesați, din browser, URL-ul {{{http://​swarm.cs.pub.ro/​~<​username-de-pe-swarm>/​workshop-blog/​}}},​ unde {{{<​username-de-pe-swarm>​}}} este numele vostru de utilizator de pe swarm. *#* Accesați, din browser, URL-ul {{{http://​swarm.cs.pub.ro/​~<​username-de-pe-swarm>/​workshop-blog/​}}},​ unde {{{<​username-de-pe-swarm>​}}} este numele vostru de utilizator de pe swarm.
Line 106: Line 114:
 === Centralize, backup and secure === === Centralize, backup and secure ===
  
-Computer clusters (discuție) +Obiective 
-* NFS (iSCSI, FiberChannel) +** Dorim să instalăm un server NFS **in containerul LXC**. 
-** Folosiți contul de root pentru instalare, configurare și folosire NFS.+** Urmărim să partajăm directoare cu colegii prin NFS. 
 + 
 +* NFS 
 +** Folosiți contul de **root** pentru instalare, configurare și folosire NFS.
 *# Instalați serverul de NFS:<​code bash> *# Instalați serverul de NFS:<​code bash>
 apt-get install nfs-kernel-server nfs-common rpcbind apt-get install nfs-kernel-server nfs-common rpcbind
 </​code>​ </​code>​
 *# Creați un director {{{/​home/​student/​export/​}}} pe care să îl partajați prin NFS. *# Creați un director {{{/​home/​student/​export/​}}} pe care să îl partajați prin NFS.
-*#* Pentru a partaja, adăugați, ca root, linia de mai jos în fișierul {{{/​etc/​exports}}}:<​code>​+*#* Pentru a partaja, adăugați linia de mai jos în fișierul {{{/​etc/​exports}}}:<​code>​
 /​home/​student/​export *(rw,​sync,​no_subtree_check) /​home/​student/​export *(rw,​sync,​no_subtree_check)
 </​code>​ </​code>​
Line 122: Line 133:
 exportfs exportfs
 </​code>​ </​code>​
-*#* La urgență reporniți serverul NFS<code bash>+*#* Dacă apar probleme pe parcurs, ​reporniți serverul NFS<code bash>
 /​etc/​init.d/​nfs-kernel-server restart /​etc/​init.d/​nfs-kernel-server restart
 </​code>​ </​code>​
Line 132: Line 143:
 ip a s ip a s
 </​code>​ pentru a afla adresa IP proprie pe care să o comunici colegilor. </​code>​ pentru a afla adresa IP proprie pe care să o comunici colegilor.
-*#* Este vorba de adresa interfeței {{{eth0}}} sau {{{eth1}}}.+*#* Este vorba de adresa interfeței {{{eth0}}}.
 *#* Verificați conectivitatea folosind:<​code bash> *#* Verificați conectivitatea folosind:<​code bash>
 ping <​IP-stanga>​ ping <​IP-stanga>​
 ping <​IP-dreapta>​ ping <​IP-dreapta>​
 </​code>​ </​code>​
-*# Creați, editați, ștergeți fișiere din directoarele montate.+Verificați că puteți creaedita și șterge ​fișiere din directoarele montate, iar aceste modificări sunt vizibile și pentru colegii voștri.
  
 === Allow interconnection and interoperability === === Allow interconnection and interoperability ===
  
-E-mail (demo Răzvan)+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 [[:​sesiuni:​sysadmin:​automatizare#​demo|sesiunea de eficiență]]. 
 +** Urmărim să configurăm **containerul LXC** să realizeze autentificarea prin LDAP. 
 +*** Pentru aceasta trebuie configurat sistemul de login (prin intermediul [[http://​en.wikipedia.org/​wiki/​Pluggable_authentication_module|PAM]]să folosească LDAP. 
 * LDAP * LDAP
 ** Folosiți, pe **swarm**, comenzi de interogare LDAP:<​code>​ ** Folosiți, pe **swarm**, comenzi de interogare LDAP:<​code>​
-ldapsearch -LLL -x +ldapsearch -LLL -x # toate informațiile disponibile 
-ldapsearch -LLL -x uid +ldapsearch -LLL -x uid # UID-urile utilizatorilor 
-ldapsearch -LLL -x uid=razvan +ldapsearch -LLL -x uid=razvan # informații despre utilizatorul cu UID-ul ​razvan 
-ldapsearch -LLL -x sn=M* +ldapsearch -LLL -x sn=M* # informații despre utilizatori ai căror nume începe cu litera M 
-ldapsearch -LLL -x '​(&​(givenName=*a)(sn=M*))'​+ldapsearch -LLL -x '​(&​(givenName=*a)(sn=M*))' ​# idem + ai căror prenume se termina cu litera a
 </​code>​ </​code>​
 ** Pe instanța DokuWiki configurată în [[:​sesiuni:​sysadmin:​automatizare#​demo|sesiunea de eficiență]],​ configurați acces LDAP. ** Pe instanța DokuWiki configurată în [[:​sesiuni:​sysadmin:​automatizare#​demo|sesiunea de eficiență]],​ configurați acces LDAP.
-**Adăugați, în {{{~/​public_html/​dokuwiki/​conf/​local.php}}},​ conținutul de mai jos:<​code php dokuwiki-ldap.conf>+**Adăugați, în {{{~/​public_html/​dokuwiki/​conf/​local.php}}},​ conținutul de mai jos:<​code php>
 $conf['​authtype'​] = '​ldap';​ $conf['​authtype'​] = '​ldap';​
 $conf['​auth'​]['​ldap'​]['​port'​] = '​636';​ $conf['​auth'​]['​ldap'​]['​port'​] = '​636';​
Line 161: Line 177:
 $conf['​auth'​]['​ldap'​]['​version'​] = '​3';​ $conf['​auth'​]['​ldap'​]['​version'​] = '​3';​
 </​code>​ </​code>​
 +**# Verificați ca vă puteți autentifica pe dokuwiki folosind username-ul și parola de pe swarm.
 ** Autentificare Unix prin LDAP. ** Autentificare Unix prin LDAP.
-*** În continuare veți configura **containerul LXC** să realizeze autentificarea prin LDAP. +*** Toate comenzile următoare trebuie rulate în **containerul LXC**. Pentru conectare puteți folosi comanda de mai jos:<code bash>
-**** Toate comenzile următoare trebuie rulate în **containerul LXC**  +
-*** Folosiți container-ul LXC dedicat; conectați-vă ca {{{root}}}:<code bash>+
 ssh -l root -p 4<​id-container>​22 houdini.grid.pub.ro ssh -l root -p 4<​id-container>​22 houdini.grid.pub.ro
 </​code>​ </​code>​
-*** Trebuie configurat sistemul de login (prin intermediul [[http://​en.wikipedia.org/​wiki/​Pluggable_authentication_module|PAM]]) să folosească LDAP. +**Instalați bibliotecile LDAP și aplicațiile de tip client:<​code bash>
-** Instalați bibliotecile LDAP și aplicațiile de tip client:<​code bash>+
 apt-get install ldap-utils apt-get install ldap-utils
 </​code>​ </​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):<​code bash>+**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):<​code bash>
 # LDAP Defaults # LDAP Defaults
 # #
Line 186: Line 200:
 TLS_REQCERT never TLS_REQCERT never
 </​code>​ </​code>​
-** Verificați funcționarea conexiunii la serverul LDAP, folosind comanda {{{ldapsearch}}}:<​code bash post-receive>​+**#* Verificați funcționarea conexiunii la serverul LDAP, folosind comanda {{{ldapsearch}}}:<​code bash post-receive>​
 ldapsearch -x -LLL uid=<​username-de-pe-swarm>​ ldapsearch -x -LLL uid=<​username-de-pe-swarm>​
 </​code>​ </​code>​
-** {{{<​username-de-pe-swarm>​}}} este numele vostru de utilizator de pe {{{swarm.cs.pub.ro}}}. +**#* {{{<​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 post-receive>+**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 apt-get install libnss-ldap
  
Line 196: Line 210:
 Distinguished name of the search base: dc=swarm,​dc=cs,​dc=pub,​dc=ro Distinguished name of the search base: dc=swarm,​dc=cs,​dc=pub,​dc=ro
 LDAP version to use: 3 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 for root: cn=admin,​dc=swarm,​dc=cs,​dc=pub,​dc=ro
 LDAP account password: TODO LDAP account password: TODO
Line 201: Line 218:
 LDAP administrative password: TODO LDAP administrative password: TODO
 </​code>​ </​code>​
-*** Vă spune Răzvan ​răspunsul la {{{TODO}}}. +**#* Vă spune Bogdan ​răspunsul la {{{TODO}}}. 
-** Verificați ​configurarea ​corespunzătoare, ​prin rularea comenzii<​code bash post-receive>+**Verificați ​că ați configurat ​corespunzător prin rularea comenzii<​code bash>
 cat /​etc/​libnss-ldap.conf ​ | grep -v '​^#'​ | grep -v '​^$'​ cat /​etc/​libnss-ldap.conf ​ | grep -v '​^#'​ | grep -v '​^$'​
 </​code>​ și obținerea rezultatului<​code>​ </​code>​ și obținerea rezultatului<​code>​
Line 210: Line 227:
 rootbinddn cn=admin,​dc=swarm,​dc=cs,​dc=pub,​dc=ro rootbinddn cn=admin,​dc=swarm,​dc=cs,​dc=pub,​dc=ro
 </​code>​ </​code>​
-** Configurați în {{{/​etc/​nsswitch.conf}}} intrările {{{passwd}}},​ {{{group}}} și {{{shadow}}}:<​code bash post-receive>+**Configurați în {{{/​etc/​nsswitch.conf}}} intrările {{{passwd}}},​ {{{group}}} și {{{shadow}}}:<​code bash>
 passwd: ​        ​compat ldap passwd: ​        ​compat ldap
 group: ​         compat ldap group: ​         compat ldap
 shadow: ​        ​compat ldap shadow: ​        ​compat ldap
 </​code>​ </​code>​
-**Reporniți daemonul {{{nscd}}}:<​code bash post-receive>+**Reporniți daemonul {{{nscd}}}:<​code bash>
 /​etc/​init.d/​nscd restart /​etc/​init.d/​nscd restart
 </​code>​ </​code>​
-** Verificați configurarea prin rularea comenzilor:<​code bash post-receive>+**#* Verificați configurarea prin rularea comenzilor:<​code bash>
 getent passwd <​username-de-pe-swarm>​ getent passwd <​username-de-pe-swarm>​
 id <​username-de-pe-swarm>​ id <​username-de-pe-swarm>​
 apt-get install finger apt-get install finger
 finger <​username-de-pe-swarm>​ finger <​username-de-pe-swarm>​
-</​code>​ unde {{{<​username-de-pe-swarm>​}}} este numele vostru de utilizator de pe {{{swarm.cs.pub.ro}}}. +</​code>​ 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 post-receive>+**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 '​^$'​ cat /​etc/​pam_ldap.conf ​ | grep -v '​^#'​ | grep -v '​^$'​
 </​code>​ care trebuie să dea rezultatul<​code>​ </​code>​ care trebuie să dea rezultatul<​code>​
Line 233: Line 250:
 pam_password crypt pam_password crypt
 </​code>​ </​code>​
-** Verificați configurarea corespunzătoare a fișierelor {{{/​etc/​pam.d/​common-account}}} ({{{account-required}}}) și {{{/​etc/​pam.d/​common-auth}}} ({{{auth required}}}) (e vorba de prezența {{{pam_ldap.so}}}:<​code bash post-receive>+**Verificați configurarea corespunzătoare a fișierelor {{{/​etc/​pam.d/​common-account}}} ({{{account required}}}) și {{{/​etc/​pam.d/​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 '​^$'​ 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=2 new_authtok_reqd=done default=ignore] pam_unix.so ​
Line 246: Line 263:
 auth required pam_permit.so auth required pam_permit.so
 </​code>​ </​code>​
-*** Schimbați utilizatorul în utilizatorul de pe swarm:<​code>​ +**Ca **root** activați modulul PAM {{{mkhomedir}}} pentru crearea home-ului utilizatorului la autentificare. Adăugați ca root, la finele fișierului {{{/​etc/​pam.d/​common-session}}},​ linia:<​code>​
-su - <​username-de-pe-swarm>​ +
-</​code>​ +
-** Ca **root** activați modulul PAM {{{mkhomedir}}} pentru crearea home-ului utilizatorului la autentificare. Adăugați ca root, la finele fișierului {{{/​etc/​pam.d/​common-session}}},​ linia:<​code>​+
 session required ​       pam_mkhomedir.so skel=/​etc/​skel/​ umask=0022 session required ​       pam_mkhomedir.so skel=/​etc/​skel/​ umask=0022
 </​code>​ </​code>​
-**Schimbați utilizatorul în utilizatorul de pe {{{swarm.cs.pub.ro}}}:<​code>​+**Schimbați utilizatorul în utilizatorul de pe {{{swarm.cs.pub.ro}}}:<​code>​
 su - <​username-de-pe-swarm>​ su - <​username-de-pe-swarm>​
 </​code>​ Observați crearea directorului home pentru utilizator. </​code>​ Observați crearea directorului home pentru utilizator.
 **# Adăugați cheia publică SSH de pe sistemul din laborator în contul utilizatorului nou creat. **# Adăugați cheia publică SSH de pe sistemul din laborator în contul utilizatorului nou creat.
 **#* Copiați cheia publică în fișierul {{{.ssh/​authorized_keys}}} din home-ul utilizatorului. **#* Copiați cheia publică în fișierul {{{.ssh/​authorized_keys}}} din home-ul utilizatorului.
-**Verificați conectarea prin SSH:<​code>​+** 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 ssh -l <​username-de-pe-swarm>​ -p 4<​id-container>​22 houdini.cs.pub.ro
 </​code>​ </​code>​
-* RADIUS (discuție) 
- 
-=== Use versioning === 
-* Gitolite (discuție) 
- 
-=== Allow access from anywhere on any device === 
-* Dropbox 
-** Vedeți exercițiul 7 din [[:​sesiuni:​sysadmin:​eficienta#​demo-uri|demo-urile sesiunii de Eficiență]]. 
-* web, DAV, e-mail, LDAP (discuție) 
sesiuni/sysadmin/centralizare.txt · Last modified: 2014/07/09 18:47 by razvan