3. Du serveur au service
- + Apirak.com +
Home | Login | Register | Contact
Buy content
My Website
Blog Forun
“RDX Wall Art: The Making Of” is a - “RDX Wall Art: The Making Of” iand new short
new short documentary highlighting documentary iand new short isa new short
- isa new short documentary
- highlighting iand new sho documentary
some of the pioneers highlighting - some of the pioneers highlighting iand new sho
more ... more ...
+ =
Media Archive
Ads
by Google
Note here
Pages 1 2 3 4 5 6 7 . . . 120 121 122
4. Configuration du serveur
• Installer des packages • Créer des répertoires
• Configurer le noyau • Créer des groupes
• Configurer le firewall • Créer des utilisateurs
• Configurer un serveur web • Modifier des permissions
• Configurer un serveur SMTP • Activer/désactiver des services
• Créer des bases de données • Créer des tâches périodiques
6. Déployer une appli
• Déploiement initial
– Installer le code
– Installer les dépendances
– Créer la base de données
– Configurer le serveur web
– Lancer l'appli
7. Déployer une appli
• Déploiement initial • Déploiements ultérieurs
– Installer le code – Mettre à jour le code
– Installer les dépendances – Mettre à jour les dépendances
– Créer la base de données – Migrer le schéma de données
– Configurer le serveur web – Relancer l'appli
– Lancer l'appli
11. Approches et outils
Automatisé
Manuel Répétable
Scalable
ssh scripts fabric
shell
12. C’est quoi fabric ?
« Une bibliothèque Python (2.5+)
et un outil en ligne de commande
qui simplifie l’utilisation de SSH
pour le déploiement d’applications
et les tâches d’administration système. »
13. Concrètement
• Un outil en ligne de commande
$ fab
• Une bibliothèque pour aider à écrire son « fabfile.py »
from fabric.api import run
def hello():
run('echo hello')
21. Les + et les -
• Les bons côtés
– on écrit du Python, pas des scripts shell
– modulable, simple et efficace
• Les manques
– ça reste assez bas niveau
– peu de primitives pour manipuler fichiers, utilisateurs...
22. fabtools
• fabtools
– ensemble de primitives pour les scripts fabric
– tâches courantes : utilisateurs, fichiers, paquets, etc.
• fabtools.require
– configuration déclarative vs. impérative
– inspiré par des outils comme Chef ou Puppet... en plus léger
23. Approches et outils
Automatisé
Manuel Répétable
Scalable
ssh scripts fabric
shell
24. Approches et outils
Automatisé
Manuel Répétable
Scalable
ssh scripts fabric Chef,
shell Puppet...
25. Approches et outils
Automatisé
Manuel Répétable
Scalable
ssh scripts fabric fabric Chef,
shell + fabtools Puppet...
26. Paquets Debian / Ubuntu ?
from fabtools import require
def require_packages():
# J'ai besoin de ces paquets Debian/Ubuntu
require.deb.packages([
'imagemagick',
'libxml2-dev',
])
28. Serveur SMTP ?
from fabtools import require
def require_smtp():
# J'ai besoin d'un serveur SMTP
require.postfix.server('example.com')
29. Base de données ?
from fabtools import require
def require_db():
# J'ai besoin d'une base PostgreSQL
require.postgres.server()
require.postgres.user('myuser', 's3cr3tp4ssw0rd')
require.postgres.database('myappsdb', 'myuser')
30. Paquets Python ?
from fabtools.python import virtualenv
from fabtools import require
def python_packages():
# Je veux que ce paquet soit installé globalement
require.python.package('lxml', use_sudo=True)
# Je veux un virtualenv
require.python.virtualenv('venv')
# Je veux que ces paquets soient installés dans le virtualenv
with virtualenv('venv'):
require.python.packages(['pyramid', 'gunicorn'])
31. Lancer un processus ?
from fabtools import require
def process():
# J'ai besoin d'un processus supervisor pour mon appli
require.supervisor.process('myapp',
command='/home/bob/venv/bin/gunicorn_paster production.ini',
directory='/home/bob/myapp',
user='bob'
)
32. Un serveur web en frontal ?
from fabtools import require
def nginx_proxy():
# J'ai besoin d'un serveur nginx en proxy devant mon appli
require.nginx.proxied_site('example.com',
docroot='/home/bob/myapp/public',
proxy_url='http://127.0.0.1:8888'
)