Archive for » May, 2009 «

Friday, May 22nd, 2009 | Author:

Petite suite à mon précédent billet sur l’utilisation d’un LB devant puppet. En 0.24.5, il existe un bug gênant si vous utilisez les external nodes : personnellement la conf des nodes est stockées dans une base mysql et c’est un script qui me sort le YAML correspond à la config.

Pour résoudre ce bug qui laisse les connexions en CLOSE_WAIT (cf le netstat) je vous conseille vivement de passer en version 0.24.8. Via du pinning apt cela ne pose aucun soucis.

Category: Puppet, SysAdmin  | Tags: , ,  | 61 Comments
Wednesday, May 13th, 2009 | Author:

Mon puppetmaster au boulot a toujours été le bon vieux webrick fourni avec puppet. J’ai récemment atteint un nombre de machines qui ne permet plus de l’utiliser, il ne scale pas. Qu’à cela ne tienne, après avoir parcouru le wiki de puppet je me suis lancé : petit résumé et condensé orienté debian.

Tout d’abord les paquets nécessaires :

apt-get install mongrel nginx

Ensuite modifier la conf dans /etc/default/puppetmaster pour démarrer des serveurs de type mongrel en lieu et place de webrick :

SERVERTYPE=mongrel
PUPPETMASTERS=4
PORT=18140

Modifier la section puppetmasterd dans votre puppet.conf en ajoutant la ligne suivante :

ssl_client_header=HTTP_X_SSL_SUBJECT

et enfin le nginx.conf, copie quasi conforme de celui du wiki :

user root;
worker_processes 5;
 
error_log /var/log/nginx/error-puppet.log;
pid /var/run/nginx-puppet.pid;
 
events {
     worker_connections  1024;
}
 
http {
     default_type  application/octet-stream;
     access_log  /var/log/nginx/access.log;
 
     sendfile       on;
     tcp_nopush     on;
 
     keepalive_timeout  65;
     tcp_nodelay        on;
 
     ssl                     on;
 
     ssl_certificate         /var/lib/puppet/ssl/certs/puppet.XXXXX.pem;
     ssl_certificate_key     /var/lib/puppet/ssl/private_keys/puppet.XXXXXt.pem;
     ssl_client_certificate  /var/lib/puppet/ssl/ca/ca_crt.pem;
     ssl_ciphers             SSLv2:-LOW:-EXPORT:RC4+RSA;
     ssl_session_cache       shared:SSL:8m;
     ssl_session_timeout     5m;
 
     upstream puppet-production {
          server 127.0.0.1:18140;
          server 127.0.0.1:18141;
          server 127.0.0.1:18142;
          server 127.0.0.1:18143;
     }
 
     server {
          listen                  8140;
          ssl_verify_client       on;
          root                    /var/empty;
          access_log              /var/log/nginx/access-8140.log;
          rewrite_log             /var/log/nginx/rewrite-8140.log;
 
     location / {
          proxy_pass          http://puppet-production;
          proxy_redirect      off;
          proxy_set_header    Host             $host;
          proxy_set_header    X-Real-IP        $remote_addr;
          proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
          proxy_set_header    X-Client-Verify  SUCCESS;
          proxy_set_header    X-SSL-Subject    $ssl_client_s_dn;
          proxy_set_header    X-SSL-Issuer     $ssl_client_i_dn;
     proxy_read_timeout  65;
     }
   }
 
    server {
        listen                  8141;
        ssl_verify_client       off;
        root                    /var/empty;
        access_log              /var/log/nginx/access-8141.log;
        rewrite_log             /var/log/nginx/rewrite-8141.log;
 
        location / {
            proxy_pass         http://puppet-production;
            proxy_redirect     off;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_set_header   X-Client-Verify  FAILURE;
            proxy_set_header   X-SSL-Subject    $ssl_client_s_dn;
            proxy_set_header   X-SSL-Issuer     $ssl_client_i_dn;
            proxy_read_timeout  65;
        }
    }
 
}

Et OUI il tourne en root, à cause des certificats, flemme de gruiker sur les permissions.

Category: BOFH Life, Puppet, SysAdmin  | Tags: , ,  | Leave a Comment