Some files for administrating LinuxFr.org: nginx conf, monitoring, etc.
Ruby Shell Nginx
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
conf
dotfiles
init.d
mon
scripts
.gitignore
README.md
crontab

README.md

Admin LinuxFr.org

Ce dépôt git contient les fichiers qui servent à l'administration du serveur LinuxFr.org -- pas les informations confidentielles ;-)

Install on Debian Squeeze

On commence par installer quelques paquets debian pour jouer :

# aptitude install vim git zsh ack-grep curl openssl colordiff
# aptitude install python-pygments imagemagick hunspell hunspell-fr

Et de quoi compiler :

# aptitude install build-essential autoconf libxml2-dev libreadline-dev libssl-dev
# aptitude install libxslt1-dev zlib1g-dev libcurl4-openssl-dev libgmp-dev

Si vous le souhaitez, vous pouvez en profiter pour mettre en place un Openssh :

# aptitude install openssh-server
# /etc/init.d/ssh start

Un serveur web, nginx :

# aptitude install nginx

On va maintenant se créer un compte utilisateur linuxfr :

# adduser --home /data/prod/linuxfr --gecos 'LinuxFr <linuxfr@linuxfr>' --disabled-password linuxfr
# ln -s /data/prod/linuxfr /var/www/linuxfr

Si vous souhaitez vous connecter en ssh, c'est probablement le bon moment pour ajouter votre clé ssh publique à /data/prod/linuxfr/.ssh/authorized_keys et modifier /etc/ssh/sshd_config pour whitelister cet utilisateur.

Vous pouvez maintenant vous logger avec cet utilisateur et en profiter pour installer vos fichiers dotfiles (les miens sont sur https://github.com/linuxfrorg/dotfiles si ça vous intéresse).

N'oubliez pas de créer le fichier ruby-env, sourcé depuis le {bash|zsh}rc :

$ git clone git://github.com/linuxfrorg/admin-linuxfr.org.git admin
$ ln -s ~/admin/dotfiles/ruby-env .
$ ln -s ~/admin/dotfiles/go-env .
$ vim .bashrc   ## Ajouter "source ~/ruby-env ; source ~/go-env" au début
$ source ruby-env
$ source go-env

On retourne en root pour installer Redis :

# echo 'deb http://deb.bearstech.com/debian wheezy-bearstech main' >> /etc/apt/sources.list.d/40bearstech.list
# aptitude update
# aptitude install redis-server
# ln -sf /data/prod/linuxfr/admin/conf/redis/redis.conf /etc/redis/
# /etc/init.d/redis-server start

Et ElasticSearch :

# echo 'deb http://deb.bearstech.com/squeeze elasticsearch/' >> /etc/apt/sources.list.d/40bearstech.list
# aptitude update
# aptitude install elasticsearch
# /etc/init.d/elasticsearch start

Un mysql, avec création de la base de données :

# aptitude install mysql-server mysql-client libmysql++-dev
# ln -sf /data/prod/linuxfr/admin/conf/mysql/conf.d/utf8.cnf /etc/mysql/conf.d/
# ln -sf /data/prod/linuxfr/admin/conf/mysql/my.cnf /etc/mysql/
# /etc/init.d/mysql restart
# mysql -p -u root
> CREATE DATABASE linuxfr_production;
> CREATE USER linuxfr@localhost IDENTIFIED BY 'password';
> GRANT ALL PRIVILEGES ON linuxfr_production.* TO linuxfr@localhost;
(si /var est une partition avec peu de place, ne pas oublier de déplacer /var/lib/mysql ailleurs)

PhantomJS (pour SVGTeX) :

# aptitude install phantomjs

Ruby 2.1.1 (livré avec rubygems) :

# aptitude install ruby2.1 ruby2.1-dev

Puis, on continue avec notre utilisateur linuxfr et on installe quelques gems qui vont bien :

$ gem install bundler unicorn

Déployer l'application Rails à distance avec capistrano :

(desktop) $ cap env:prod deploy:setup
$ vim ~/production/shared/config/database.yml
(desktop) $ cap env:prod deploy:check
(desktop) $ cap env:prod deploy:update

Import des données existantes en provenance de templeet :

$ w3m https://github.com/linuxfrorg/migration-linuxfr.org

Installer la crontab :

$ crontab -e
0 1 * * *   source ruby-env && cd $RAILS_ENV/current && rake linuxfr:daily
*/5 * * * * ~/board/bin/board-mon.sh
*/5 * * * * ~/share/share-mon.sh

Lancer le serveur applicatif (unicorn) :

# ln -sf /data/prod/linuxfr/admin/init.d/unicorn /etc/init.d/
# /etc/init.d/unicorn start
# update-rc.d unicorn defaults 99

Mettre en place la conf nginx :

# ln -sf /data/prod/linuxfr/admin/conf/nginx/nginx.conf /etc/nginx/
# ln -sf /data/prod/linuxfr/admin/conf/nginx/mime.types /etc/nginx/
# ln -s /data/prod/linuxfr/admin/conf/nginx/sites-available/linuxfr.org /etc/nginx/sites-available/
# ln -s /etc/nginx/sites-available/linuxfr.org /etc/nginx/sites-enabled/

Recopier le certificat SSL dans /etc/nginx ou en générer un nouveau en suivant les instructions de http://wiki.nginx.org/NginxHttpSslModule#Generate\_Certificates

Puis relancer nginx :

# /etc/init.d/nginx restart

On peut alors finit l'installation avec :