Archives de catĂ©gorie : Solaris

FRsaG est né !

Tout bon geek que vous ĂȘtes, vous connaissez tous le tout puissant FRnOG (FRench Network Operators Group). Non ? Et bien c’est un groupe d’Ă©change d’information initialement destinĂ© aux FAI. L’inscription est libre ainsi que la participation, mais attention, ce n’est pas une mailing liste destinĂ© au support d’un FAI. C’est une mailling liste destinĂ©s aux professionnel des rĂ©seaux. Je vous conseil plutĂŽt le mode lurker. Pour ceux qui auraient ratĂ© le dĂ©but, les archives de FRnOG sont ici.

Bref, au fil des annĂ©es (plus de 8ans maintenant) et du nombre croissant d’inscrit (2800) de FRnOG, la mailing liste a dĂ©rivĂ© doucement vers des dĂ©bats non seulement sur les rĂ©seaux, mais de plus en plus sur le systĂšme.

Et c’est une des raisons, qui a amenĂ© GrĂ©gory DUCHATELET a crĂ©er le 17 Juillet 2010 le FRsaG (FRench sysadmin Group). Un groupe d’Ă©change destinĂ© aux sysadmin. Le FRsAG est aussi destinĂ©s aux professionnels. Il est ouvert sur toutes les OS : Windows, Linux, Solaris, HP-UX, etc.

Pour la petite histoire, la goute d’eau qui amĂšnera la crĂ©ation de FRsaG aura Ă©tĂ© un sujet sur FRnOG traitant des performances de l’ext4. Il est disponible ici.

Bonne lecture.

prtdiag : l’Information cpu sur solaris

Voici un bonne petite commande pour connaitre des informations sur le nombre de processeurs/coeurs ainsi que leurs fréquences sur solaris.

# /usr/platform/`/usr/bin/uname -i 2> /dev/null`/sbin/prtdiag

Ce qui retourne sur une veille machine ceci :

System Configuration: Sun Microsystems  sun4u Sun Blade 2500
System clock frequency: 160 MHZ
Memory size: 2GB

==================================== CPUs ====================================
               E$          CPU     CPU       Temperature
CPU  Freq      Size        Impl.   Mask     Die    Ambient
---  --------  ----------  ------  ----  --------  --------
 0   1280 MHz  1MB         US-IIIi   2.4     66 C      29 C
 1   1280 MHz  1MB         US-IIIi   2.4     72 C      29 C

================================= IO Devices =================================
     Bus   Freq
Brd  Type  MHz   Slot        Name                          Model
---  ----  ----  ----------  ----------------------------  --------------------
 0   pci    66            2  SUNW,XVR-600 (display)        SUNW,375-3153
 0   pci    66            3  network-pci14e4,1647.108e.16+
 0   pci    66            4  scsi-pci1000,21.1000.1000.1 +
 0   pci    66            4  scsi-pci1000,21.1000.1000.1 +
 0   pci    33            7  isa/serial-su16550 (serial)
 0   pci    33            7  isa/serial-su16550 (serial)
 0   pci    33            7  isa/dma-isadma (dma)
 0   pci    33            8  sound-pci10b9,5451.10b9.5451+
 0   pci    33            8  usb-pci1033,35.1235.35.1043 +
 0   pci    33            8  usb-pci1033,35.1235.35.1043 +
 0   pci    33            8  usb-pci1033,e0.1235.e0.2004 +
 0   pci    33           10  usb-pci10b9,5237.3 (usb)
 0   pci    33           11  usb-pci10b9,5237.3 (usb)
 0   pci    33           11  firewire-pci104c,8024.1235.8+
 0   pci    33           13  ide-pci10b9,5229.c4 (ide)

============================ Memory Configuration ============================
Segment Table:
-----------------------------------------------------------------------
Base Address       Size       Interleave Factor  Contains
-----------------------------------------------------------------------
0x200000000        2GB               2           BankIDs 0,1

Bank Table:
-----------------------------------------------------------
           Physical Location
ID       ControllerID  GroupID   Size       Interleave Way
-----------------------------------------------------------
0        0             1         1GB             0,1
1        0             1         1GB

Memory Module Groups:
--------------------------------------------------
ControllerID   GroupID  Size       Labels
--------------------------------------------------
0              1        2GB        DIMM2,DIMM3

=============================== usb Devices ===============================

Name          Port#
------------  -----
mouse           2

=============================== usb Devices ===============================

Name          Port#
------------  -----
keyboard        2

Backup ou ebackup ?

On ne le rĂ©pĂ©tera jamais : Le backup est une nĂ©cessitĂ©, et avec l’ebackup tout devient plus simple mais quand est il pour la suretĂ© et la sĂ©curitĂ© des donnĂ©es ?

La durĂ©e de vie d’une feuille imprimĂ© ou d’une photo est de plus de 50-100 ans. Alors que celle d’un CD/DVD/HDD est plutĂŽt de 10 ans. Soit prĂȘt de 10 fois moins.

Et les factures, les documents de travail, les photos et film de famille sont de plus en plus numĂ©rique. Autrefois le danger de perte de ces documents Ă©tait trĂšs faible avec au pire un feu. Mais aujourd’hui le danger est bien plus grand :

  • DurĂ©e de vie des support numĂ©rique faible.
  • Mauvaise manƓuvre qui entraine l’effacement (30% des pertes de donnĂ©es sont du Ă  des erreurs humaines).
  • Panne du matĂ©riel.
  • DĂ©gĂąts accidentel (feu, eau, Ă©lectricitĂ©)
  • Mais surtout le vol.

Continuer la lecture de Backup ou ebackup ?

SAMP : Solaris, Apache2, PHP5, MySQL5

Aprés le LAMP, le WAMP voici le SAMP.
Dans ce billet je vais m’atteler a expliquer comment installer un SAMP (Solaris, Apache, MySQL, PHP) sur Solaris 10 avec pkg-get et les dĂ©pĂŽt de blastwave.

1. Mysql 5

On ca commencer par installer mysql 5

# pkg-get -i mysql5 mysql5client mysql5devel mysql5rt
# pkg-get -i mysql5test

Maintenant il faut créer le fichier /opt/csw/mysql5/my.cnf. Pour cela on va copier un fichier de configuration disponible dans /opt/csw/mysql5/share/mysql/ vers le bon repertoire.

cp /opt/csw/mysql5/share/mysql/my-small.cnf /opt/csw/mysql5/my.cnf

Editer ce fichier en fonction de vos besoin.

Maintenant on va créer la base de donnée et attribuer les permission :

# cd /opt/csw/mysql5
# ./bin/mysql_install_db
# chown -R mysql:mysql ./var

On peut à présent démarrer mysql en utilisant SMF.

Alors normalement vous n’avez pas de service mysql de lancer :

# svcs -a | grep mysql
disabled 20:08:59 svc:/network/cswmysql5:default

On active le SMF pour mysql5

# svcadm enable svc:/network/cswmysql5:default

A présent mysql est lancé :

# svcs -a | grep mysql
online 21:23:45 svc:/network/cswmysql5:default

Si vous voulez le stoper :

# svcadm disable svc:/network/cswmysql5:default

Configurons le mot de pass pour l’user root de mysql :

# /opt/csw/mysql5/bin/mysqladmin -u root password ‘new-password’

Vous pouvez tester la connexion ainsi :

# ./bin/mysql -uroot -p

2. Apache 2.2

Apache et Apache2 sont déjà installer dans Solaris mais je préfÚre installer la derniÚre version stable de apache 2.2 disponible chez blastwave.

# pkg-get apache2

Le fichier de configuration se apache2 se trouve ici /opt/csw/apache2/etc/httpd.conf vous pouvez l’Ă©diter pour le faire correspondre Ă  vos prĂ©fĂ©rences.

De la mĂȘme maniĂšre que pour mysql on va utiliser SMF pour dĂ©marrer et arrĂȘter apache2
Commençons par chercher les diffĂ©rentes version d’apache2 installĂ© :

# svcs -a | grep apache2
disabled 16:06:33 svc:/network/http:apache2
disabled 16:57:48 svc:/network/http:cswapache2

Celui qui nous intĂ©resse, c’est le cswapache2.

# svcadm enable svc:/network/cswapache2

Apache est maintenant démarré :

# svcs -a | grep apache2
disabled 16:06:33 svc:/network/http:apache2
online 17:10:17 svc:/network/http:cswapache2

Vous pouvez tester l’affichage http://localhost

Si vous voulez l’arreter :

# svcadm disable svc:/network/cswapache2

3. PHP5

Installation de PHP5

# pkg-get -i php5
# pkg-get -i libxml2
# pkg-get ap2_modphp5
# pkg-get php5_mysql

A présent on va tester php en créant un phpinfo()

# nano /opt/csw/apache2/share/htdocs/infos.php

Et dans le fichier creer, écrivez :


Si tout est ok en vous rendant sur http://localhost/infos.php vous devriez avoir la page d’information de php.

4. phpmyadmin

# pkg-get -i phpmyadmin

On va copier puis modifier le fichier de configuration :

# cp /opt/csw/apache2/share/htdocs/phpmyadmin/config.sample.inc.php /opt/csw/apache2/share/htdocs/phpmyadmin/config.inc.php

Et on change dans ce fichier l’authentification de cookies vers http.

$cfg[‘Servers’][$i][‘auth_type’] = ‘http’;

Entrez l’addresse : http://localhost/phpmyadmin le login et le mot pass seront ceux que vous avez configurer pour mysql au tout dĂ©but.

it’s done !


http://www.sun.com/bigadmin/content/submitted/samp.html

http://blogs.sun.com/nealix/entry/samp_solaris_apache_2_mysql
http://www.cacti.net/downloads/docs/contrib/install_solaris.html

PostgreSQL dans une Zone

AprĂšs le mini-howto d’installation de glassfish dans une zone. Voici celui pour pgSQL (postgreSQL) dans une zone.

Ce qui est trĂšs sympa c’est que pgSQL 8.1 et 8.2 sont dĂ©jĂ  installĂ© dans SOLARIS 10 et Solaris SXDE (Solaris Express Developer Edition). Donc pas besoin de les installer.

Aller c’est partie pour la crĂ©ation de la zone de la mĂȘme façons que pour glassfish :

# mkdir /var/zones/z_pgsql
# chmod –R 700 /var/zones/z_pgsql

Je ne vais pas créer de pool de ressource CPU mains directement créer la zone. Je reviendrais dans un autre billet à ce sujet.

# zonecfg -z z_pgsql
sunrise: No such zone configured
Use ‘create’ to begin configuring a new zone.
#zonecfg:sunrise> create # Création de la Zone
#zonecfg:sunrise> set zonepath=/var/zones/z_pgsql #Dossier de la zone
#zonecfg:sunrise> add net # Ajout d’une configuration rĂ©seau
#zonecfg:sunrise:net> set address=192.168.1.11 #Ip de la zone
#zonecfg:sunrise:net> set physical=pcn0 #Nom de l’interphase rĂ©seau physique (vmware pour l’exemple)
#zonecfg:sunrise:net> end # fin de la configuration réseaux
#zonecfg:sunrise> verify # Vérification de la configuration
#zonecfg:sunrise> commit # Validation de la configuration
#zonecfg:sunrise> exit # Sortie de la configuration de zone

On va vérifier la configuration :

# zonecfg -z z_pgsql info
zonepath: /var/zones/z_pgsql
autoboot: false
pool:
inherit-pkg-dir:
dir: /lib
inherit-pkg-dir:
dir: /platform
inherit-pkg-dir:
dir: /sbin
inherit-pkg-dir:
dir: /usr
net:
address: 192.168.1.121
physical: pcn0

Maintenant que la configuration de la zone est prĂȘte on va passer Ă  la crĂ©ation Ă  proprement parlĂ© de la zone. Cette Ă©tape peut ĂȘtre relativement longue celon les performances de votre machine.

# zoneadm –z z_pgsql verify
# zoneadm -z z_pgsql install
Preparing to install zone .
Creating list of files to copy from the global zone.
Copying <2812> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1200> packages on the zone.
Initialized <1200> packages on zone.
Zone is initialized.
Installation of <1> packages was skipped.
Le fichier
contient un journal de l’installation de la zone.

Vous pouvez vérifier que la zone z_pgsql est bien installé :

# zoneadm list -cvi

Maintenant que la zone est créer, on va pouvoir la démarrer :

#zoneadm –z z_pgsql boot -s

Lors du premier boot il faut configurer la zone en fonction de vos préférence. Parfois Solaris a un peu du mal a reconnaitre le F2 dans ce utiliser la combinaison de touche MAJ + Esc + 2 pour validé les étapes.

On se loge sur la zone z_glassfish :

# zlogin –C z_glassfish

Pour ne pas encombrĂ© inutilement d’image le billet, je vous ai fait un rĂ©capitulatif des diffĂ©rentes options que vous devrez choisir (dans l’ordre d’affichage) :

Langue : Français
Environnement Localisé : France(UTF8)
Emulateur de terminal CDE (dtterm)
Hostname: glassfish
Configuration kerberos: No
Name Service : DNS
Hostname : pgsql
Nameserver : 208.67.222.222 #nameserver de opendns
Nameserver : 208.67.220.220 #nameserver de opendns
NFS4 configuration: Choix par defaut.
Time zone: Europe
Countries et regions : France
Mot de passe : password

A présent la console doit vous demander de vous identifier

glassfish console login : root
password : password

Voila vous ĂȘtes dans votre zone, vous pouvez faire exit pour en sortir et retour dans votre zone globale solaris.

Maintenant activons postgreSQL.
On commence par switcher vers l’utilisateur postfres :

# su – postgres

On creer ensuite le cluster de la DB pgsql :

$ /usr/postgres/8.2/bin/initdb -D /var/postgres/8.2/data

Si tout c’est bien passĂ© vous devriez avec un message de ce type :

The files belonging to this database system will be owned by user « postgres ».
This user must also own the server process.

The database cluster will be initialized with locales
COLLATE: fr_FR.UTF-8
CTYPE: fr_FR.UTF-8
MESSAGES: fr.UTF-8
MONETARY: fr_FR.UTF-8
NUMERIC: fr_FR.UTF-8
TIME: fr_FR.UTF-8
The default database encoding has accordingly been set to UTF8.

fixing permissions on existing directory /var/postgres/8.2/data … ok
creating subdirectories … ok
selecting default max_connections … 100
selecting default shared_buffers/max_fsm_pages … 32MB/204800
creating configuration files … ok
creating template1 database in /var/postgres/8.2/data/base/1 … ok
initializing pg_authid … ok
initializing dependencies … ok
creating system views … ok
loading system objects’ descriptions … ok
creating conversions … ok
setting privileges on built-in objects … ok
creating information schema … ok
vacuuming database template1 … ok
copying template1 to template0 … ok
copying template1 to postgres … ok

WARNING: enabling « trust » authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.

Success. You can now start the database server using:

/usr/postgres/8.2/bin/postgres -D /var/postgres/8.2/data
or
/usr/postgres/8.2/bin/pg_ctl -D /var/postgres/8.2/data -l logfile start

Si vous voulez acceder a votre serveur autre qu’en local il faudra changer la configuration de listen_address dans /var/postgre/8.2/data/postresql.conf :

# nano /var/postgre/8.2/data/postresql.conf
listen_address = « IP » # ou * si vous voulez que toutes les IP y accede

Enfin il existe plusieurs façons de démarrer pgSQL, je vais vous présenter celle avec SMF. En temps que root on démare postgreSQL avec SMF.

# /usr/sbin/svcadm enable postgresql:version_82

ou bien tout simplement

# /usr/postgres/8.2/bin/postgres -D /var/postgres/8.2/data

A prĂ©sent je vais installer pgadmin qui est GUI pour postreySQL qui fonctionne sous windows, linux et Solaris. Je vais expliquer ici l’installation pour Solaris.

Une fois téléchargé :

# gzip -d pgadmin3-1.8.0_x86.tar.gz
# tar -xvf pgadmin3-1.8.0_x86.tar
# pkgadd -d . pgadmin3

Les binaire se trouve dans /opt/pgadmin3/bin, donc si vous voulez y acceder directement ajouter le a votre PATH.

http://www.postgresql.org/ftp/pgadmin3/release/v1.8.0/solaris/x86/

C’est finit.

La doc qui m’a permis d’Ă©crire ce billet :

http://www.sun.com/software/solaris/howtoguides/postgresqlhowto.jsp
http://docs.sun.com/app/docs/doc/819-5578/6n7lcpcl2?a=view

Changer l’ip d’une Zone

Pour changer l’ip d’une zone non-global, il vous faut utiliser le zonecfg dans la zone globale. Je vais prendre l’exemple de ma zone glassfish

# zonecfg -z z_glassfish
# zonecfg:z_glassfish> select net address=<old-ip>
# zonecfg:z_glassfish:net> set address=<new-ip>
# zonecfg:z_glassfish:net> end
# zonecfg:z_glassfish> commit

Glassfish dans une Zone

En savourant un bagel dans cette belle ville de MontrĂ©al je me suis dit « tiens si j’Ă©crivais un mini guide sur l’installation de Glassfish dans une Zone solaris ». Et paf c’est partie.

Je vais passer l’Ă©tape d’installation de Solaris 10 et de sa configuration que vous pouvez trouver sur mon blog et passer directement a la crĂ©ation de la zone puis l’installation de glassfish dedant.

Alors il faut commencer par creer l’espace de stockage pour la future zone.

# mkdir /var/zones
# mkdir /var/zones/z_glassfish

Un petit coup de chmod pour pacifier les droits :

# chmod –R 700 /var/zones/z_glassfish

Je ne vais pas créer de pool de ressource CPU mains directement créer la zone. Je reviendrais dans un autre billet à ce sujet.

# zonecfg -z z_glassfish
sunrise: No such zone configured
Use ‘create’ to begin configuring a new zone.
#zonecfg:sunrise> create # Création de la Zone
#zonecfg:sunrise> set zonepath=/var/zones/z_glassfish #Dossier de la zone
#zonecfg:sunrise> add net # Ajout d’une configuration rĂ©seau
#zonecfg:sunrise:net> set address=192.168.1.120 #Ip de la zone
#zonecfg:sunrise:net> set physical=pcn0 #Nom de l’interphase rĂ©seau physique (vmware pour l’exemple)
#zonecfg:sunrise:net> end # fin de la configuration réseaux
#zonecfg:sunrise> verify # Vérification de la configuration
#zonecfg:sunrise> commit # Validation de la configuration
#zonecfg:sunrise> exit # Sortie de la configuration de zone

On va vérifier la configuration :

# zonecfg -z z_glassfish info
zonepath: /var/zones/z_glassfish
autoboot: false
pool:
inherit-pkg-dir:
dir: /lib
inherit-pkg-dir:
dir: /platform
inherit-pkg-dir:
dir: /sbin
inherit-pkg-dir:
dir: /usr
net:
address: 192.168.1.120
physical: pcn0

Maintenant que la configuration de la zone est prĂȘte on va passer Ă  la crĂ©ation Ă  proprement parlĂ© de la zone. Cette Ă©tape peut ĂȘtre relativement longue celon les performances de votre machine.

# zoneadm –z z_glassfish verify
# zoneadm -z z_glassfish install
Preparing to install zone .
Creating list of files to copy from the global zone.
Copying <2812> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1200> packages on the zone.
Initialized <1200> packages on zone.
Zone is initialized.
Installation of <1> packages was skipped.
Le fichier
contient un journal de l’installation de la zone.

Vous pouvez vérifier que la zone z_glassfish est bien installé :

# zoneadm list -cvi

Maintenant que la zone est créer, on va pouvoir la démarrer :

#zoneadm –z z_glassfish boot -s

Lors du premier boot il faut configurer la zone en fonction de vos préférence. Parfois Solaris a un peu du mal a reconnaitre le F2 dans ce utiliser la combinaison de touche MAJ + Esc + 2 pour validé les étapes.

On se loge sur la zone z_glassfish :

# zlogin –C z_glassfish

Pour ne pas encombrĂ© inutilement d’image le billet, je vous ai fait un rĂ©capitulatif des diffĂ©rentes options que vous devrez choisir (dans l’ordre d’affichage) :

Langue : Français
Environnement Localisé : France(UTF8)
Emulateur de terminal CDE (dtterm)
Hostname: glassfish
Configuration kerberos: No
Name Service : None
NFS4 configuration: Choix par defaut.
Time zone: Europe
Countries et regions : France
Mot de passe : password

A présent la console doit vous demander de vous identifier

glassfish console login : root
password : password

Voila vous ĂȘtes dans votre zone, vous pouvez faire exit pour en sortir et retour dans votre zone globale solaris.

Maintenant installons glassfish.

Toutes cette opĂ©ration se dĂ©roule dans la zone que vous venez de crĂ©er, vĂ©rifier que vous ĂȘtes bien logger dedans et non dans votre zone globale.

# wget http://java.net/download/javaee5/v2ur2/promoted/SunOS_X86/glassfish-installer-v2ur2-b04-sunos_x86.jar

A prĂ©sent, je vais executer le jar tĂ©lĂ©charger, qui va s’installer dans le rĂ©pertoire courant.

# java -Xmx256m -jar glassfish-installer-v2ur2-b04-sunos_x86.jar

Je dĂ©place tout ça dans un dossier appserver que j’ai creer dans le /var/ Vous pouvez faire comme vous voulez, cela ce configure dans le setup.xml

# mkdir /var/appserver
# cp -R glassfish/* /var/appserver/
# cd /var/appserver/

Je rajoute les droits d’exĂ©cution sur le dossier qui contiens les librairies qui vont me permettre de dĂ©ployer mon serveur glassfish.

# chmod -R +x lib/ant/bin

Et enfin, je vais compiler le fichier setup.xml pour déployer le serveur.

# lib/ant/bin/ant -f setup.xml

Normlement, vous devrez avoir a la fin de l’exĂ©cution ceci :

BUILD SUCCESSFULL

A prĂ©sent on va utiliser asadmin pour dĂ©ployer le domain par defaut que l’on vient de creer. Attention l’asadmin fournis dans Solaris 10 provoque une erreur de type timeout

Timeout waiting for domain domain1 to go to starting state.
CLI156 Could not start the domain domain1.

Pour eviter cela, je vais utiliser le asadmin livré avec glassfish

# bin/asadmin start-domain domain1

Ce qui devrait vous retourner quelque comme ça :

Starting Domain domain1, please wait.
Log redirected to /var/appserver/domains/domain1/logs/server.log.
Redirecting output to /var/appserver/domains/domain1/logs/server.log
Domain domain1 is ready to receive client requests. Additional services are being started in background.
Domain [domain1] is running [Sun Java System Application Server 9.1_02 (build b04-fcs)] with its configuration and logs at: [/var/appserver/domains].
Admin Console is available at [http://localhost:4848].
Use the same port [4848] for « asadmin » commands.
User web applications are available at these URLs:
[http://localhost:8080 https://localhost:8181 ].
Following web-contexts are available:
[/web1 /__wstx-services ].
Standard JMX Clients (like JConsole) can connect to JMXServiceURL:
[service:jmx:rmi:///jndi/rmi://glassfish:8686/jmxrmi] for domain management purposes.
Domain listens on at least following ports for connections:
[8080 8181 4848 3700 3820 3920 8686 ].
Domain does not support application server clusters and other standalone instances.

Vous pouvez donc a présent accéder aux différent service de votre serveur glassfish comme indiqué dans le log juste au dessus.

Source qui m’ont aider a rĂ©diger ce billet :
http://swik.net/GlassFish+solaris
https://glassfish.dev.java.net/
et bien sur les guru de chez guses : www.guses.org

Solaris le terminal cassé

Lors d’un crash de ma vmware une de mes zones a perdus la configuration du terminale. Ce qui provoque des erreur de type :

TERM environment variable need set

Alors on peut vĂ©rifier avec un env comment se porte les variables d’environnement.
Dans mon cas, cela donnait :

# env

HZ=
LC_MONETARY=fr_FR.UTF-8
SHELL=/usr/bin/bash
LC_NUMERIC=fr_FR.UTF-8
MAIL=/var/mail/root
PATH=/opt/csw/bin:/usr/sbin:/usr/bin:/usr/dt/bin:/usr/openwin/bin:/usr/ccs/bin
LC_MESSAGES=fr.UTF-8
LC_COLLATE=fr_FR.UTF-8
PWD=/root/glassfish
TZ=Europe/Paris
SHLVL=1
HOME=/
LOGNAME=root
LC_CTYPE=fr_FR.UTF-8
LC_TIME=fr_FR.UTF-8
_=/usr/bin/env
OLDPWD=/root

La solution est relativement simple, dans mon cas j’utilise dtterm ce qui donne :

# TERM=dtterm
# export TERM

Et la magie fonctionne.

Solaris 10 for noob

Comme je débute en solaris, je me fait une petite note pour ma loutre ayant toujours connus le monde linux.

Alors pour rajouter le user artiflo, qui aura son répertoire dans /export/home/artiflo et qui utilisera par défaut le bash:

# useradd -d /export/home/artiflo -m -s /bin/bash -c « Artiflo » artiflo

On peut changer le shell par defaut avec la commande :

# passwd -e user

Et dans mon cas je vais donc répondre /usr/bin/bash.
A noter que le shell par dĂ©faut est prĂ©cisĂ© par /etc/passwd, qui a Ă©tĂ© lui mĂȘme initialisĂ© au moment de crĂ©er l’utilisateur (avec la commande useradd, option -s).

Configurer son mot de passe :

# passwd artiflo

Connaitre les informations réseau :

# ifconfig -a

Dans un premier temps je vais faire hurler les vĂ©ritables admin sys SOLARIS et installer nano dans mon petit Solaris pour illustrer l’utilisation de pkg-get avec les dĂ©pĂŽt de blastwave et les clĂ©s qui vont avec :

# pkgadd -d http://www.blastwave.org/pkg_get.pkg
# /opt/csw/bin/pkg-get -i gnupg textutils

RĂ©pondre « yes » Ă  toutes les questions. Il se peut que l’on vous demande beaucoup beaucoup beaucoup de rĂ©pondre Ă  des questions liĂ© Ă  des dĂ©pendance. Si vous savez ce que vous faire vous pouvez sauter les Ă©tapes de contrĂŽle en faisant ceci et pouvoir aller jouer avec votre loutre pendant que gnome s’installe.

# cp -p /var/pkg-get/admin-fullauto /var/pkg-get/admin

A prĂ©sent vous avec pkg-get d’installer vous pouvez installer tous les applicatifs disponible chez blastwave.
Commençons donc par nano.

# /opt/csw/bin/pkg-get -i nano

Je sens déjà ma loutre qui respire en ayant nano sous la papate.

Maintenant que nano est installer on va en profiter pour configurer le pkg-get.conf afin de préciser les mirroir de blastwave qui correspondent a votre zone géographique. La liste des mirroirs ce trouve ici http://www.blastwave.org/mirrors.html. Pour la france je vous conseil ceux de solaris-fr en stable ce qui donne ceci :http://blastwave.solaris-fr.org/stable/

# /opt/csw/bin/nano /opt/csw/etc/pkg-get.conf

Commentez ceux pas défaut et remplacer par ceci :

# solaris-fr.org, pour la FRANCE: 
url=http://blastwave.solaris-fr.org/stable/

A prĂ©sent je vais modifier le PATH pour les user et le root afin que les binaire de blastwave puisse s’Ă©xecuter sans devoir ecrire le chemin a la main a chaque fois. Pour cela il faut Ă©diter 2 fichier : /etc/default/login et /etc/default/su et modifier a chaque fois le PATH et le SUPATH ainsi

# /opt/csw/bin/nano /etc/default/login

PATH=/opt/csw/bin:/usr/sfw/bin:/usr/sbin:/usr/bin:/usr/dt/bin:/usr/openwin/bin:/usr/ccs/bin
SUPATH=/opt/csw/bin:/usr/sfw/bin:/usr/sbin:/usr/bin:/usr/dt/bin:/usr/openwin/bin:/usr/ccs/bin

et

# /opt/csw/bin/nano /etc/default/su

PATH=/opt/csw/bin:/usr/sfw/bin:/usr/sbin:/usr/bin:/usr/dt/bin:/usr/openwin/bin:/usr/ccs/bin
SUPATH=/opt/csw/bin:/usr/sfw/bin:/usr/sbin:/usr/bin:/usr/dt/bin:/usr/openwin/bin:/usr/ccs/bin

Il faut vous déloger puis vous reloger pour que les informations soit pris en compte.

Vous pouvez consulter tous les paquets installer Ă  l’aide de pkg ainsi :

# ls -ladt /var/sadm/pkg/CSW*

Enfin je termine sur un point de sécurité « facultatif » pour la plus part.

Tout a l’heure je vous ai fait installer gnupg et texutils afin de pouvoir profiter de la vĂ©rification de l’installation des paquets.
Nous allons donc télécharger puis importer la clés pgp de chez blastwave.

# wget –output-document=pgp.key http://www.blastwave.org/mirrors.html
# gpg –import pgp.key

A présent les paquets que vous installerez auront leurs clés de vérifier.

C’est fini, voici des sources qui m’ont aidĂ© a Ă©crire ce billet :

http://from8to5.blogspot.com/2007/11/solaris-add-user-useradd.html

http://www.blastwave.org/howto.html

Présentation Zones Solaris

Voici mon premier billet sur solaris. J’ai Ă©cris ceci pour dans le cadre du laboratoire linux de SUPINFO. C’est une explication de l’utilisation des zones dans le pour l’entreprise.

Zone solaris

1. La virtualisation

La virtualisation serveur n’a rien de nouveau IBM le pratique depuis longtemps en mainframes avec VM/370 (1972). Mais ce n’est que plus rĂ©cemment avec l’expansion de la Virtualisation pour serveur Intel x86 (Xen, OpenVZ, etc) que Sun Ă  commencer avec Solaris 10 Ă  mettre en avant ses solutions de Virtualisation. Dans ce document nous allons Ă©tudier la virtualisation n’ont pas pour mettre en avant le principe de mettre plusieurs OS diffĂ©rent sur une OS hĂŽte comme ce que le grand publique a l’habitude de faire mais plutĂŽt la consolidation.

2. Consolidation kesako ?

2.1. La consolidation : Faire plus avec moins.

Le principe de la consolidation est simple. Cela consiste Ă  fusionner plusieurs processus hĂ©bergĂ© sur des serveurs diffĂ©rents sur un mĂȘme serveur tout en conservant la sĂ©curitĂ© et la rĂ©partition de charge des processus.

Solaris zone Conslidation

Un exemple :
Vous ĂȘtes l’administrateur systĂšme d’un parc de 8 serveurs sous Solaris qui travail pour le mĂȘme projet en load balancing. Il y 4 serveurs web, 3 serveur de BDD et 1 serveur mail. Tous ces serveurs ne sont pas exploiter aux mieux de leurs performance du fait de l’impossibilitĂ© de rĂ©partir la charge CPU entre eux selon le besoin. De surcroit la quantitĂ© de travail pour administrer les 8 serveurs lors des mises Ă  jour ou du contrĂŽle des logs est longue et fastidieuse.

Solution : La consolidation, vous regrouper ces processus sur le mĂȘme serveur et vous partager aussi bien le CPU, la RAM et l’espace disque entre les serveurs, vous amĂ©liorer ainsi les performances, rĂ©duisez le temps de maintenance et les couts. Conteneur Solaris : Les Zones

Alors pour ceux qui ne lisent pas entre les lignes voici les 3 principaux intĂ©rĂȘts de la consolidation :

  • La ContinuitĂ© de service avec la migration des zones. Reprise en cas de panne en relançant la zone prĂ©alablement sauvegardĂ© sur un autre serveur Solaris sans avoir besoin de la rĂ©installer.
  • Performance. Optimisation de la ressource des serveurs. En permettant de pouvoir utiliser un plus grand nombre d’application sur le mĂȘme serveur les ressources ne soient pas gaspillĂ©es.
  • Cout. En rĂ©duisant le nombre de serveur, cela rĂ©duit par la mĂȘme l’espace physique occupĂ© dans le datacenter, les frais de gestion, l’énergie consommĂ© par le serveur et par le systĂšme de refroidissement (50% du cout d’un serveur).

2.3. Les autres produits de consolidation

openvzvmware

Xen

Alors comme je l’écrivais plus haut Sun n’a pas inventĂ© le principe de consolidation. Voici les autres
principales solutions de consolidation.

  • Xen pour plateforme x86, x64, IA-64, PowerPC et SPARC. Les OS supportĂ© sont : Linux, FreeBSD, NetBSD, Plan 9, Gnu Hurd.
  • VMware GSX/ESX
  • Les solutions de IBM z/VM.
  • Virtuozzo (OpenVZ) qui s’inspire des Conteneurs solaris
  • Microsoft Virtual Server

3. La virtualisation chez Solaris : les Zones et les Containers

Maintenant que l’intĂ©rĂȘt de la consolidation est clarifiĂ© attaquons nous Ă  sa mise en place pour Solaris 10. Une machine virtuelle chez Solaris s’appel une Zone (elle peut aussi etre appeler Container).

Solaris zone

3.1. Définition des Zones et des Containers

Un « Solaris Containers » est une application de Virtualisation intĂ©grĂ© directement au systĂšme d’exploitation qui est apparut pour la premiĂšres fois dans Solaris 10 en 2007.Il permet de contrĂŽler et d’allouer les ressources aux diffĂ©rente Zones Ă  partir du systĂšme hĂŽte.

Une « Solaris Zones » permet de virtualiser un SystĂšme d’exploitation en l’isolant et le sĂ©curisant du
reste du systÚme. Une application fonctionnant dans une zone est donc isolé des autres applications
ce qui la protĂšges de failles ou de crash d’une application sur une autres. Une zone fournis un niveau d’abstraction pour l’OS virtualisĂ© ce qui permet de sĂ©parer de l’accĂšs direct a la couche matĂ©riel de la machine.
La limite thĂ©orique du nombre maximum de Zone est de 8192 mais en pratique elle dĂ©pend de la quantitĂ© de ressource hardware requise par les applications comparativement Ă  la quantitĂ© hardware disponible. C’est-Ă -dire le nombre de processeur, mĂ©moire vive, carte rĂ©seau, disque dur etc.

Mais est ce que cela consomme plus de ressource ?

OpenSolaris fournis un exemple d’un cas d’utilisation d’un environnement en production web. Sur un vieux Sun Entreprise 250 Server (2 CPU 300Mhz, 512 MB RAM, 3 HDD en RAID de 40 GB) il y a 40 zones d’installĂ©e et chacune des zones contient 5 service web Apache. En exĂ©cutant des requĂȘtes http sur les serveurs apache les couts en ressource systĂšme de la gestion des zones est si faible qu’ils ne sont pas mesurable (moins de 5%).

4. Les différents types de Zones

Il existe 2 type de Zone : La Zone Globale qui est l’instance de Solaris 10 de la machine hĂŽte qui se lance lors du boot et les Zones non-globale qui sont les machine virtualisĂ© hĂ©berger dans la Zone Globale.

4.1. La zone Globale

Pour alléger la quantité de ressources nécessaire les applications coexistent dans la Zone Globale. Les Zones non-globale pourront donc faire appel directement à ses applications sans avoir forcement besoin de les installer (nous y reviendront).

Tous systĂšmes Solaris 10 contiennent donc une Zone Globale. Cette zone globale a 2 fonctions : une pour le crĂ©er la couche d’interaction d’abstraction systĂšme et l’autre pour le contrĂŽler et l’autre pour gĂ©rer les zones non-globale. Les processus et application fonctionnent donc dans la zone globale si aucune zone non-globale n’a Ă©tĂ© créée.

La zone globale est la seule zone oĂč les zones non-globale peuvent ĂȘtre configurĂ©es, installĂ©es, gĂ©rĂ©es et dĂ©sinstallĂ©es. Seul la zone globale est dĂ©marrable Ă  partir du hardware du serveur.

L’administration de l’architecture systĂšme tel que la gestion pĂ©riphĂ©rique, du routage des IP partagĂ©,
de la reconfiguration dynamique est possible seulement dans la zone globale.
Il y a 2 façons de configurer les adresses IP, soit en allouant une IP exclusive pour une zone soit en IP
partager entre plusieurs zones.

4.2. Les zones Non-Globale

Si les paramĂštres par dĂ©faut sont sĂ©lectionnĂ©s, chaque Zone non-globale aura besoin d’au minimum 85MB d’espace disque libre pour s’installer si la zone globale a Ă©tĂ© installĂ©e avec tout les Metacluster des paquets Solaris. Tout nouveau paquet installer dans la zone globale demandera de l’espace disque pour les zones non-global. La quantitĂ© de mĂ©moire vive minimum par zone est quand a elle de 40MB.
Il existe deux types de model de fichier systÚme de zone non-globale: Les « wholes root » et les « sparse ». Le modÚle « whole root » permet une configuration avec plus de paramÚtre alors que le modÚle « wholes root » donne de meilleure performance.

Une zone installer avec le model « full-root » demandera dans les 500MB d’espace disque libre. Chaque zone, en incluant la zone globale se voit attribuer un nom de zone. La zone globale Ă  toujours le nom globale. Chaque zone a un numĂ©ro d’identification unique attribuĂ© par le systĂšme quand la zone est dĂ©marrĂ©e. La zone globale a toujours le numĂ©ro d’identification 0. Le nom de la zone ainsi que son id sont configurable avec la commande « zonecfg ». Chaque zone a un nom de nƓud qui est indĂ©pendant du nom de zone. Le nom de nƓud est attribuĂ© par l’administrateur de la zone. Chaque zone dispose d’un chemin d’accĂšs a son rĂ©pertoire racine qui est relatif au rĂ©pertoire racine de la zone globale.

4.3. Les différents types de zone Non-Globale

4.3.1. Les Zones Native

Par dĂ©faut une Zone non-globales et une Zone Native. Une Zone Native est une zone ayant les mĂȘmes propriĂ©tĂ©s que le systĂšme d’exploitation (Solaris 10) en cours d’exĂ©cution sur la zone Globale.

Si le systĂšme d’exploitation hĂŽte est configurĂ© avec les Solaris Trusted Extensions chaque Zone non-globales sera associĂ©e avec le mĂȘme niveau de sĂ©curitĂ© ou label.

4.3.2. Les Branded Zones

Dans une Zone non-globales il est Ă©galement possible de lancer un autre environnement d’exploitation que Solaris 10. Les Zones marquĂ© (Branded Zones) permettent d’élargir la possibilitĂ© de crĂ©ation d’architecture de Zones diffĂ©rente Ă  travers des framework ou des OS diffĂ©rente.

Il existe pour l’instant 2 types de Zone Branded supportĂ© :

  • Lx branded (une Zone linux) est une Zone Non-globale qui permet d’utilisĂ© les applications dĂ©veloppĂ©s pour Linux dans un environnement linux complet. Lx branded n’est toutefois pas une distribution Linux Ă  part entiĂšre.
  • Solaris 8 Branded permet de migrer un environnement sous Solaris 8 dans une Zone Solaris 8 fonctionnant sur un serveur hĂŽte (Zone Globale) en Solaris 10.

4.4. Droit et privilĂšges

Un administrateur global a les droits super utilisateur ou rĂŽle d’administrateur Primaire. Lorsque l’administrateur global est connectĂ© Ă  la zone globale il peut surveiller et contrĂŽler l’ensemble du systĂšme.
Une zone non-globale peut ĂȘtre administrĂ©e par un « administrateur de zone ». L’administrateur global assigne le profil « d’administrateur de zone » dans l’interface de Management de Profile de zone. Les privilĂšges d’administrateur de zone sont confinĂ© a une zone non-globale.

4.5. Récapitulatif

Zone Globale :

  • ID 0 attribuĂ© par le systĂšme.
  • Fournit la seule instance du noyau Solaris qui est bootable et fonctionnant sur le systĂšme.
  • Contiens une installation complĂšte du SystĂšme d’exploitation Solaris.
  • Peut contenir d’autres logiciels, des rĂ©pertoires, des fichiers et d’autres donnĂ©es qui ne sont pas installĂ©s par le biais de paquets.
  • Fournit une base de donnĂ©es produit complĂšte sur tous composants logiciels installĂ©s dans la zone globale.
  • Contient les informations de configuration uniquement de la zone globale, comme le nom d’hĂŽte de la zone globale, ou le systĂšme de fichier.
  • Est la seule zone qui connait tous composants ou systĂšme de fichier.
  • Est la seule zone qui connait l’existence des zones non-globales et leur configuration.
  • Est la seule a partir de laquelle une zone non-globale peut ĂȘtre configurĂ©, installĂ©, gĂ©rĂ© ou dĂ©sinstallĂ©.

Zone Non-Globale :

  • ID attribuĂ© par le systĂšme lors du dĂ©marrage de la zone.
  • OpĂ©ration partagĂ© sous le kernel dĂ©marrĂ© dans la zone globale.
  • Contient un sous-ensemble de l’installation complĂšte des paquets de l’OS Solaris.
  • Contient des paquets partagĂ©s avec la zone globale.
  • Peut contenir des paquets logiciels non partagĂ© depuis la zone globale. ‱ Peut contenir d’autres logiciels, des rĂ©pertoires, des fichiers et d’autres donnĂ©es qui ne sont pas installĂ©s par le biais de paquets ou partager depuis de la zone globale.
  • Fournit une base de donnĂ©es produit complĂšte sur tous composants logiciels installĂ©s dans la zone, qu’ils soient prĂ©sent dans la zone non-globale ou partager en lecture seule depuis la zone globale.
  • N’est pas conscient de l’existe d’autre zone.
  • Ne peux pas configurer, installĂ©, gĂ©rĂ© ou dĂ©sinstallĂ© d’autres zone, mĂȘme elle-mĂȘme.
  • Contient les uniquement les informations de configuration de la zone non-globale, comme le nom d’hĂŽte de la zone non-globale, ou le systĂšme de fichier.
  • Peut avoir sa propre configuration du fuseau horaire.