Pages

Rechercher dans ce blog

mercredi 22 mai 2013

Créer un paquet RPM depuis un programme installé

Créer un RPM depuis une installation présente

Rpmerizor :

Créer un RPM pour un programme installé différemment est assez simple grâce au script rpmerizor.

Rpmerizor est un programme qui va vous permettre de créer un paquet RPM pour un logiciel déjà installé.  

Je l'ai utilisé personnellement pour construire mon paquet Chef-client et j'en suis satisfait !

Le site officiel : RPMERIZOR vous y trouverez son usage ainsi que des exemples.

Mon exemple couvre la création du paquet chef-client sur SL6 64bits :

L'installation de Chef-client avait été faite depuis le dépôt GITHUB.
Pour des raisons de "propreté" , voici l'architecture d'installation de ce programme :
  • tout est situé dans /opt/chef/11.4/
  • /opt/chef/11.4/etc/ est le dossier comprenant la configuration de chef-client
  • /opt/chef/11.4/.gems/ est le dossier comprenant les rubygems de chef 
Bien sûr ceci est spécifique à mon installation, pour des installations "classiques" les fichiers de configurations sont souvent situés dans /etc/ (et rpmerizor se débrouille très bien avec cette situation également, voir les exemples sur la page officielle)

Retour à la création du paquet :


Une fois rpmerizor installé, nous allons lancer la création du paquet et l'édition du fichier .spec (fichier qui contient des informations sur : comment installer le logiciel, où, que faire après l'installation, les dépendances ...)

lancer la commande :

rpmerizor -e /opt/chef/11.4/

Le script va nous demander les méta-informations du paquet, puis ouvrir le fichier .spec afin de l'éditer et ensuite construire le rpm.

Pour de plus amples informations sur les spécificités d'un fichier .spec, je vous invite à lire cette page (en anglais): Fedora doc

et surtout n'hésitez pas à chercher d'autres aides sur le fichier .spec

bonne construction ;-)



mardi 21 mai 2013

Chef bannière SSH

Configurer une bannière SSH , CHEF

Création du cookbook :


knife cookbook create sshd_banner

Vous avez maintenant l’architecture de la recette, editez le fichier /sshd_banner/recipes/default.rb

## Cookbook Name:: banner
# Recipe:: default
#
# Copyright 2013, *****
#
# All rights reserved - Do Not Redistribute
#
template "/etc/ssh/sshd_banner" do 
 source "sshd_banner"
 mode "0644"
end

(si vous souhaitez que votre bannière soit "dynamique" rajoutez ".erb" à la fin de la source)

## Cookbook Name:: banner
# Recipe:: default
#
# Copyright 2013, *****
#
# All rights reserved - Do Not Redistribute
#
template "/etc/ssh/sshd_banner" do 
 source "sshd_banner.erb"
 mode "0644"
end

Puis créez le fichier source /sshd_banner/templates/default/sshd_banner (ou sshd_banner.erb) et créez votre bannière ssh :

*******************************************************************************
*                ACCES REGLEMENTE: Loi  88-19 du 5 janvier 1988               *
*******************************************************************************
*        Cet equipement est la propriete du groupe XXXX                       * 
*               Acces interdit a toute personne non autorisee                 *
*            This equipment is the property of XXXX                           *
*                    UNAUTHORIZED ACCESS WILL BE PROSECUTED                   *
*******************************************************************************

Un exemple de bannière "dynamique" :
*******************************************************************************
*                ACCES REGLEMENTE: Loi  88-19 du 5 janvier 1988               *
*******************************************************************************
This server is property of <%= node['company'] %>
<% if node['pci']['in_scope'] -%>
This server is in-scope for PCI Compliance
<% end -%>
*******************************************************************************

Il vous reste plus qu'à envoyer la recette sur chef-server  :

knife cookbook upload sshd_banner

et à la rajouter à votre "run_list".


lundi 13 mai 2013

Changer le répertoire (installation / execution) de chef-client

Dans ce billet, nous allons installer chef-client depuis le dépôt github, puis changer le répertoire d'exécution des gems ruby afin de l'exécuter depuis le répertoire choisi.

Le répertoire choisi pour chef est : /opt/chef-11.6/ qui correspond à /opt/chef-<version_number > et celui des gems est : /opt/chef-11.6/.gems

Ce tuto utilise SL6 (64 bits) et chef 11.6.


mardi 7 mai 2013

Changer le répertoire d'installation des gems ruby

Le changement se fera par exemple dans votre dossier /home/

Créer un  répertoire d'installation des gems (caché ou non):

mkdir ~/.gems/bin 

Dans votre dossier personnel, créer ou modifier le fichier .gemrc et y rajouter :

gemhome: $HOME/.gems 
gempath: 
- $HOME/.gems
- /usr/lib/ruby/gems/1.8

On rajoute ensuite (histoire d'être sûr) ces variables dans notre environnement :

export GEM_HOME=$HOME/.gems
export GEM_PATH=$HOME/.gems:/usr/lib/ruby/gems/1.8/
export PATH=$PATH:$HOME/.gems/bin

On vérifie avec la commande :

gem environment

qui nous montre l 'environnement choisi :



vendredi 3 mai 2013

Les proxys sous Linux, configuration de base

Petit billet pour quelques configurations de base lorsqu'un linux est derrière un proxy (authentifié ou pas à vous d'enlever le surplus ;-) )

Variables d'environnement :


export http_proxy=http://user:password@monproxy.com:port
export https_proxy=http://user:password@monproxy.com:port 
(ou (petite astuce ;-) ) export https_proxy=$http_proxy)
export ftp_proxy=$http_proxy
export rsync_proxy=$http_proxy
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com" 

Proxy pour apt-get :


Créer un fichier "proxy" dans /etc/apt/apt.conf.d/proxy puis rajouter la ligne suivante :

Acquire::http::Proxy "http://user:password@proxy.com:port";
et pour le ftp :

Acquire::ftp
{
 Proxy "ftp://proxy:2121/";
 ProxyLogin
 {
   "USER $(SITE_USER)@$(SITE)";
   "PASS $(SITE_PASS)";
 }
}


Proxy pour yum :


Ouvrir /etc/yum.conf et rajouter les lignes :

proxy=http://proxy.com:port/
proxy_username=user
proxy_password=password


Proxy pour wget :


Dans votre répertoire personnel ouvrir ou créer le fichier .wgetrc et rajouter

http_proxy = http://proxy.com:port/
proxy_user = user
proxy_password = password
use_proxy = on
wait = 15

Astuce :

rubygem, et d'autres
Garder l'environnement, par exemple :

sudo -E gem install ... 

jeudi 2 mai 2013

3 méthodes d'installation chef-client

Différentes méthodes d'installation chef-client


Les méthodes d'installation décrites ici utilisent SL6, chef 11.
Typiquement, l'installation de chef-client doit être lancée par la commande knife bootstrap  ou par l'installation de Ruby gem.
Nous allons commencer ici par l'installation par package :  

Installation par package :


Aller sur le site  d' Opscode afin de récupérer le paquet pour votre distribution :
http://www.opscode.com/chef/install/
  • La première méthode fournie utilise CURL, lancez cette commande et chef-client s'installera :
curl -L https://www.opscode.com/chef/install.sh | bash
  • La seconde méthode consiste à télécharger le .rpm et de l'installer.
(Positionnez-vous en premier dans votre répertoire de téléchargement)

wget https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-11.4.4-1.el6.x86_64.rpm

rpm - Uvh chef-11.4.4-1.el6.x86_64.rpm

Le package installe chef dans le répertoire /opt/chef/

Installation par Ruby-gem :


On commence par ajouter le dépot RBEL6 :

sudo rpm -Uvh http://rbel.frameos.org/rbel6

Puis on installe Ruby , quelques dépendances et des outils de développement

sudo yum install ruby ruby-devel ruby-ri ruby-rdoc ruby-shadow gcc gcc-c++ automake autoconf make curl dmidecode

Enfin l'installation de rubygem 2.0.3

cd /tmp
wget http://production.cf.rubygems.org/rubygems/rubygems-2.0.3.tgz
tar zxf rubygems-2.0.3.tgz
cd rubygems-2.0.3
ruby setup.rb --no-format-executable --no-document

Il ne nous reste plus qu'à installer la gem de chef :

sudo gem install chef --no-ri --no-rdoc

et de copier les fichiers de configuration avant de lancer la commande

sudo chef-client

Installation depuis le depot git (install from head) :


Nous allons commencer par installer git :

yum install -y git

On se place dans le dossier d'installation désiré :

cd /opt/

puis on clone le repository :

git clone https://github.com/opscode/chef.git

On télécharge / installe les dépendances :

sudo yum install ruby ruby-devel ruby-ri ruby-rdoc ruby-shadow gcc gcc-c++ automake autoconf make curl dmidecode

Puis Rubygem (source) :

cd /tmp
wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.10.tgz
tar zxf rubygems-1.8.10.tgz
cd rubygems-1.8.10
sudo ruby setup.rb --no-format-executable

Et on installe quelques gems nécessaires :

gem install rspec rake cucumber jeweler gemcutter

Et enfin l'installation du client :
Retournez dans le dossier de chef (j'avais choisi /opt/chef) et lancer l'installation de la gem.

cd /opt/chef/lib/chef
rake install

Ensuite copiez les fichiers de configurations du client et lancer la commande afin de créer le client et le node :

sudo chef-client 

Copie des fichiers de configuration :


L'installation est faite, maintenant, retourner sur votre serveur-chef , placez vous dans votre répertoire favoris et lancer la commande :

knife configure client ./

Ceci fait, vous aurez 2 nouveaux fichiers : client.rb et validation.pem
Créez le dossier chef :

mkdir -p /etc/chef/

Déplacez dans ce dossier les fichiers précédemment téléchargés.

mv 'client.rb' 'validation.pem' /etc/chef/

Voilà, vous devez maintenant être capable de lancer la commande :

sudo chef-client

Celle-ci va créer un client et un node lié à ce client.
Fork me on GitHub