Skip to content
Snippets Groups Projects
Commit 24d709e8 authored by mazenovi's avatar mazenovi
Browse files

keep clean posts and add .gitlab-ci.yml

parent 4df946e9
No related branches found
No related tags found
No related merge requests found
image: ubuntu:precise
cache:
paths:
- output/ # Node modules and dependencies
before_script:
- apt-get update
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
build:
stage: build
script:
- apt-get install -y --force-yes build-essential python-dev python-pip
- pip install --editable .
- pelican content
artifacts:
untracked: true
deploy:
stage: deploy
dependencies:
- build
script:
- scp -r output/* mazenod@192.168.100.59:~/public_html/
- ssh mazenod@192.168.100.59 'find ~/public_html/ -type f -exec chmod -R 644 {} \;'
- ssh mazenod@192.168.100.59 'find ~/public_html/ -type d -exec chmod -R 755 {} \;'
content/images/mazenovi.png

84.3 KiB

Title: Le kit de survie pour git Title: Les documentations ISIMA/LIMOS (cri ou utilisateur)
Date: 2017-05-03 10:20 Date: 2017-05-03 10:20
Tags: ispconfig, admin, www Status: Published
Tags: doc, admin, www
La [doc cri](https://doc.cri.isima.fr/) et la [doc user](https://doc.isima.fr/) de l'ISIMA/LIMOS sont toutes les deux rédigées avec le [projet MkDocs](http://www.mkdocs.org/). ```mkdocs``` permet de générer une documenation html statique à partir de simples fichiers textes au format [markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet).
L'idée est de centraliser et surtout de mettre à jour les documentations historiques
* [http://com.isima.fr/cri/infoadmin](http://com.isima.fr/cri/infoadmin)
* [System Operations Center](http://192.168.100.7/PluXml/)
* [isima wiki / intranet](http://com.isima.fr/cri)
La [doc cri](https://doc.cri.isima.fr/) est à usage restreint et nécessite donc une authentification avec le compte utilisateur Active Directory.
Tous les membres de l'ISMA et du LIMOS sont invités à contribuer à ces documentations via les repository git dédiés sur [https://gitlab.isima.fr](https://gitlab.isima.fr)
* [https://gitlab.isima.fr/cri/doc-user](https://gitlab.isima.fr/cri/doc-user)
* [https://gitlab.isima.fr/cri/doc-cri](https://gitlab.isima.fr/cri/doc-cri)
## Modifier la documentation [doc cri](https://doc.cri.isima.fr/) ou [doc user](https://doc.isima.fr/)
### 1.Installer l'environnement
#### Prérequis
* [python](https://www.python.org/) >= 2.6 ([installation](http://www.mkdocs.org/#installing-python))
* [pip](https://pypi.python.org/pypi/pip) ([installation](https://pip.pypa.io/en/stable/installing/))
* [git](https://git-scm.com/) ([installation](https://git-scm.com/book/fr/v1/D%C3%A9marrage-rapide-Installation-de-Git))
* un éditeur de texte : [atom.io](https://atom.io/) est recommandé
* savoir ce qu'est [markdown](https://guides.github.com/features/mastering-markdown/)
* la commande [mkdocs](http://www.mkdocs.org/) installable via pip
```bash
sudo pip install
```
> N.B. il est aussi possible d'installer mkdocs dans un virtualenv python afin de préserver l'installation système
### 2. récupérer les sources à partir de [https://gitlab.isima.fr](https://gitlab.isima.fr)
```bash
cd /path/to/your/projects/folder
git clone https://gitlab.isima.fr/cri/doc-cri
cd doc-cri
```
### 3. démarrer l'environnement local
```bash
mkdocs serve
```
* ourvir [http://127.0.0.1:8000](http://127.0.0.1:8000) dans votre navigateur
### 4. créer ou éditer du contenu
#### 4.1 éditer du contenu
* editer les fichiers [markdown (&ast;.md)](https://guides.github.com/features/mastering-markdown/) dans le dossier ```docs```
* [atom.io](https://atom.io/) possède une coloration syntaxique et une prévisualisation pour [markdown](https://guides.github.com/features/mastering-markdown/) (ctrl+maj+m)
* les changements sont automatiquement rendus après sauvegarde du fichier sur [http://127.0.0.1:8000](http://127.0.0.1:8000)
#### 4.2 ajouter du contenu
1. créer un nouveau fichier markdown (.md) dans le dossier ```docs``` ou dans l'un de ses sous dossiers
> un fichier template.md est diponible directement dasn le dossier doc
> l'architecture des sous dossiers devrait suivre l'architecture du menu général mentionné ci-après
2. dans ```mkdocs.yml```
1. ajouter une entrée à la section ```page:``` afin d'ajouter le nouveau fichier au menu
* le nouveau fichier peut être ajouté à un sous menu
```yml
pages:
- 'Section':
- 'Subsection': subsection.md
```
### 6. Versionner et propager les modifications
* Ajouter tous le nouveaux fichiers au prochain commit
```shell
git add . --all
```
* Valider les modifications sur le repository git local via un commit
```bash
git commit -m "my awesome contribution"
```
* Publier les modifications sur le repository git distant
```bash
git push origin master
```
### La documentation est automatiquement mise à jour à la suite de cette opération !! :clap_tone1:
```bash
mkdocs
atom preview
git add . --all
git commit -m "message explicite"
git commit --amend
git push origin master
git status
git pull --rebase
git statsh
git apply
```
### Faire une demande de documentation
###### Avec un virtualenv (c'est à dire en utilisant une installation isolée de l'OS )
Vérifiez si vous avez virtualenv déjà installé:
$ python -m venv
usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear]
[--upgrade] [--without-pip]
ENV_DIR [ENV_DIR ...]
venv: error: the following arguments are required: ENV_DIR
Si cette commande ne marche pas, il faudra installer virtualenv:
pip install --user virtualenv
Si vous avez besoin d’un rappel sur pip, c’est par là.
Ensuite, pour chacun de vos projets, créez un environnement virtuel, avec:
python -m venv /path/vers/projet/env_nom_du_projet
Si vous l’aviez déjà. Ou:
virtualenv /path/vers/projet/env_nom_du_projet
Choisir une version de Python
Parfois vous voudrez utiliser une version spécifique de Python. Vous pouvez tout à fait créer un env dédié à Python 3.2 et un autre à Python 2.6, il faut juste que les deux versions soient installées sur votre système.
Je ne vais pas détailler commen installer deux versions de Python en parallèle sur chaque OS car je n’ai aucune idée de comment on fait sous Mac ou Windows, mais sous Ubuntu c’est très simple: par défaut on est en Python 2.7, et pour installer Python 3, on fait sudo apt-get install python3. Pour installer Python 2.6, on fait sudo apt-get python2.6.
On a alors 3 executables: /usr/bin/python va déclencher Python 2.7, /usr/bin/python2.6 va appeler Python 2.6, etc. Aucun conflit système, c’est merveilleux.
Il ne reste qu’à construire son environnement virtuel en lui passant en paramètre le chemin vers le Python à utiliser:
virtualenv mon_env -p /usr/bin/python2.6
Si vous êtes sous Windows, vous pouvez aller boire une bière à la cuisine, ça ne marche pas sous votre OS.
Pour les chanceux qui ont accès à un Unix, il existe un merveilleux logiciel qui va vous éviter le yoyo entre les envs:
pip install --user virtualenvwrapper
Ensuite il faut rajouter quelques lignes dans votre script d’init de shell, par exemple dans ~/.bashrc:
export WORKON_HOME=~/.virtualenvs
mkdir -p $WORKON_HOME
source ~/.local/bin/virtualenvwrapper.sh
Selon où vous avez installé virtualenvwrapper, la dernière ligne peut changer. Moi, mon virtualenv est installé au niveau du système dont le chemin est plutôt /usr/local/bin/virtualenvwrapper.sh.
Ces lignes vont lancer virtualenvwrapper en permanence dans le shell. Relancez le terminal pour l’activer. Le premier lancement va vous afficher un tas de lignes, rassurez-vous, ça n’arrive qu’une fois.
Ensuite, vous avez accès à de nouvelles commandes:
mkvirtualenv nom_env va créer un virtualenv dans le dossier ~/.virtualenvs, où que vous soyez.
workon nom_env va automatiquement activer un env, où que vous soyez.
rmvirtualenv nom_env va surpprimer l’env du même nom.
Les options de mkvirtualenv sont les mêmes que pour la commande virtualenv, vous n’avez juste plus à vous souciez de où sont vos envs, ni de où vous êtes.
https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet
Title: Comment integragir avec l'API distante d'ispconfig Title: ispconfig avec l'API distante d'ispconfig
Date: 2017-05-03 10:20 Date: 2017-05-03 10:20
Status: Draft
Tags: ispconfig, admin, www Tags: ispconfig, admin, www
Ispconfig propose une API SOAP permettant d'exploiter toutes les fonctionnalités d'ipconfig pour la gesiton des hôtes virtuels, des mails, des DNS, des bases de données, etc ... Ispconfig propose une API SOAP permettant d'exploiter toutes les fonctionnalités d'ipconfig pour la gesiton des hôtes virtuels, des mails, des DNS, des bases de données, etc ...
......
Title: Utiliser mod_auth_cas avec apache Title: Utiliser mod_auth_cas avec apache
Date: 2017-05-03 10:20 Date: 2017-05-15 16:20
Status: Published
Tags: ispconfig, admin, www Tags: ispconfig, admin, www
Ispconfig propose une API SOAP permettant d'exploiter toutes les fonctionnalités d'ipconfig pour la gesiton des hôtes virtuels, des mails, des DNS, des bases de données, etc ... Installation du module apache cas
```bash
sudo apt-get install libapache2-mod-auth-cas sudo apt-get install libapache2-mod-auth-cas
sudo service apache2 restart sudo service apache2 restart
```
le serveur apache ne répond plus. En regardant les log
```bash
vi /var/log/apache2/error.log
```
on découvre que
```bash
[Thu May 11 17:14:26.807324 2017] [:error] [pid 3398] MOD_AUTH_CAS: CASLoginURL or CASValidateURL not defined. [Thu May 11 17:14:26.807324 2017] [:error] [pid 3398] MOD_AUTH_CAS: CASLoginURL or CASValidateURL not defined.
```
sudo dpkg -L libapache2-mod-auth-cas en inspectant le paquet précédemment installé avec
```bash
sudo dpkg -L libapache2-mod-auth-cas
...
/etc/apache2/mods-available/auth_cas.conf /etc/apache2/mods-available/auth_cas.conf
...
```
on découvre un ficgier qui ressemble à un fichier de conf par défaut
```bash
CASCookiePath /var/cache/apache2/mod_auth_cas/ CASCookiePath /var/cache/apache2/mod_auth_cas/
CASValidateServer On CASValidateServer On
CASLoginURL https://login.isima.fr/cas/login CASLoginURL https://login.isima.fr/cas/login
CASValidateURL https://login.isima.fr/cas/serviceValidate CASValidateURL https://login.isima.fr/cas/serviceValidate
```
dans le vhost à partir de là l'authentification peut se gérer avec un .htaccess directement dans le vhost
```bash
<Directory {DOCROOT}> <Directory {DOCROOT}>
AuthName 'Private' AuthName 'Private'
AuthType CAS AuthType CAS
Require valid-user Require valid-user
</Directory> </Directory>
```
voir requête LDAP + parmaètres réupérables pour credential @TODO voir requête LDAP + parmaètres réupérables pour credential
...@@ -5,7 +5,8 @@ import os ...@@ -5,7 +5,8 @@ import os
AUTHOR = 'Vincent Mazenod' AUTHOR = 'Vincent Mazenod'
SITENAME = 'Vincent Mazenod / ingénieur d\'études' SITENAME = 'Vincent Mazenod / ingénieur d\'études'
SITEURL = '' # SITEURL = 'https://limos.isima.fr/~mazenod/'
RELATIVE_URLS = True
SITELOGO = 'images/mazenovi.png' SITELOGO = 'images/mazenovi.png'
SITELOGO_SIZE = "50px" SITELOGO_SIZE = "50px"
FAVICON = 'images/favicon.ico' FAVICON = 'images/favicon.ico'
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment