====== Stage 2018 - Le Castel ======
===== Directives =====
==== Postes de travail Linux Debian Stretch salle 214/215 ====
Points à prendre en compte :
* paquet **ttf-mscorefonts-installer** (polices Microsoft)
* paquet **pcmanfm** : gestionnaire de fichier
* :!: pilotes (firmware-amd-graphics) pour carte AMD sur PC HP
* **crontab** d'extinction automatique
* paquet **notepadqq**
* paquets pour développement web : **apache2**, **php7**, **mariadb-server**, **phpmyadmin**
* playbooks :
* **base** : roles base et web
* **dvlpt** : netbeans (cf script pour alias apache)
*
===== Installation par défaut(debian 9) =====
:!: ** Cela efface l'intégralité des données présentes dans le disque, vérifié bien le disque choisi et déplacer toutes les données que vous souhaitez garder avant de faire cette manipulation.**
PXE: L'amorçage PXE (sigle de Pre-boot eXecution Environment) permet à une station de travail de démarrer depuis le réseau en récupérant une image de système d'exploitation qui se trouve sur un serveur
==== Debian 9 ====
=== Par PXE: ===
* Allumer l'ordinateur
* Choisir l'option "Network" (F12)
* Choisir "Install"
* Suivre les étapes pour la langue (Français)
* Donner un nom à l'ordinateur (sio21?-??)
* Donner le nom de domaine (sio.lan)
* Compte Superutilisateur root/root
* Compte utilisateur sio/sio
* Choisir "Utiliser un disque entier" >> Choisir disque >> /home séparée >> Terminer
* Langue archive: France >> ftp.fr.debian.org
* Saisir Proxy: http://10.121.38.1:8080
* Logiciel à installer: Xfce ; Serveur SSH ; Utilitaires usuels du système
* **Important** Oui pour GRUB
* Terminer l'installation et l'ordinateur redémarrera
=== par clé USB ===
Par clé USB (clé vierge >> image Debian 9)
* Brancher la clé avant d'allumer l'ordinateur
Pour: DELL (F11) ACER / HP (F12)
* Choisir l'option "Boot" >> "USB" >> "Install"
* Suivre les étapes pour la langue (Français)
* Donner un nom à l'ordinateur (sio21?-??) Ch
* Donner le nom de domaine (sio.lan)
* Compte Superutilisateur root/root
* Compte utilisateur sio/sio
* Choisir disque à partitionner :!: Ne pas choisir la clé USB
* Choisir "Utiliser un disque entier" >> Choisir disque >> /home séparée >> Terminer
* Langue archive: France >> ftp.fr.debian.org
* Saisir Proxy: http://10.121.38.1:8080
* Logiciel à installer: Xfce ; Serveur SSH ; Utilitaires usuels du système
* **Important** Oui pour GRUB
* Terminer l'installation et l'ordinateur redémarrera
=== partie finale ===
Cette partie installe ansible git puis télécharge le playbook http://depl/siost.git
Ce playbook installe l'interface graphique **xfce**, **virtualbox**, ...
#> curl depl/inst-siost| sh
===== Migration salles 214/215 =====
Nous avons installés les machines de la salle 214/215 en linux(debian9) avec la clé USB.
Tout d'abord nous installions sans environnement graphique.
Une fois ceci installé nous exécutions notre script "inst-215-hp".
Celui ci installe les premiers paquets dont nous avons besoins, notamment l'environnement graphique xfce4 ainsi que les paquets de bases comme mc tcpdump sudo etc...
Il installe également virtualbox etc.
voici le script:
!/bin/bash
export http_proxy=http://10.121.38.1:8080
export https_proxy=http://10.121.38.1:8080
sed -ib 's/main$/main contrib non-free/' /etc/apt/sources.list
apt update -y
apt upgrade -y
apt install -y sudo mc vim tcpdump ttf-mscorefonts-installer
if [ $? = 0 ] ; then
apt install -y firmware-amd-graphics
fi
apt install -y xfce4 xfce4-goodies net-tools
apt install -y apache2 php mariadb-server
#apt install -y netbeans
apt install -y task-print-server
#apt remove -y netbeans
apt install -y gvfs gvfs-backends pcmanfm
apt install -y firefox-esr firefox-esr-l10n-fr
apt install -y chromium chromium-l10n
apt install -y ansible geany
apt install libreoffice libreoffice-l10n-fr
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- |sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- |sudo apt-key add -
cat >/etc/apt/sources.list</root/crtab<
===== Migration salle 211 =====
Tous les ordinateurs de la salle 211 ont étés réinstallés et renommer.(de 01 à 15).
Ils ont été réinstallés en mode PXE.
les différents logiciels à dispositions sont à jour.
Nous avons constatés que certains câbles Ethernet étais en mauvaise état. (faux contact...)
===== Ansible =====
Ansible c'est quoi ?
Ansible est un outil d'automatisation informatique. Il peut configurer des systèmes, déployer des logiciels et orchestrer des tâches informatiques plus avancées telles que des déploiements continus ou des mises à jour.
Les principaux objectifs d'Ansible sont la simplicité et la facilité d'utilisation.
Ansible utilise le langage YAML.
voici notre partie local:
- hosts: localhost
become: true
vars:
proxy_env:
http_proxy: http://10.121.38.1:8080
https_proxy: http://10.121.38.1:8080
pre_tasks:
- name: Copie apt.conf
copy:
src=files/apt.conf
dest=/etc/apt
- name: Copie sources.list
copy:
src=files/sources.list
dest=/etc/apt
- name: copie cerificat virtualbox 2016
copy:
src: files/oracle_vbox_2016.asc
dest: ./oracle_vbox_2016.asc
- name: Insertion certificat virtualbox 2016
apt_key:
file: files/oracle_vbox_2016.asc
- name: copie cerificat virtualbox
copy:
src: files/oracle_vbox.asc
dest: ./oracle_vbox_2016.asc
- name: Insertion certificat virtualbox
apt_key:
file: files/oracle_vbox.asc
- name: update repositories
apt: update_cache=yes
changed_when: False
- name: sudo
apt:
name: sudo
tasks:
- include: tasks/users.yml
- include: tasks/cron.yml
- include: tasks/packages.yml
- include: tasks/packages-xfce.yml
- include: tasks/packages-vbox.yml
- include: tasks/packages-dvlpt.yml
tags: ['dvlpt']
- include: tasks/packages-fusion.yml
Nous avons ensuite plusieurs sous parties ce qui facilite la lisibilité et l'organisation.
===== Fusioninventory =====
script:
#!/bin/bash
export http_proxy=http://10.121.38.1:8080
export https_proxy=http://10.121.38.1:8080
wget http://debian.fusioninventory.org/downloads/fusioninventory-agent_2.4-2_all
dpkg -i fusioninventory-agent_2.4-2_all
apt install -y --fix-broken
#redemarer les service
#systemctl restart fusioninventory-agent
#start immediate run
#pkill -USR1 -f -P 1 fusioninventory-agent
exit 0
playbook:
- name: copie script inst-fusion
copy:
src: files/inst-fusion
dest: /tmp
mode: 0755
- name: lancement script inst-fusion
command: /tmp/inst-fusion
#args:===== Fusioninventory =====
# chdir: /tmp
- name: copie agent.cfg dans /etc/fusioninventory
copy:
src: files/agent.cfg
dest: /etc/fusioninventory
- name: restart fusioninventory-agent
service:
name: fusioninventory-agent
state: restarted
===== Crontab =====
le crontab a pour but de programmé une extinction automatique des postes
ici nous avons fait en sorte que les machines s'éteignent chaque jours a 18h15
(le fait de ne rien mettre dans "weekday" signal que cela vas s'effectuer tous les jours.
- cron:
name: "Crontab"
weekday:
minute: "15"
hour: "18"
job: "ls -alh > /dev/null"
===== Dvlpt =====
celui ci nous servira pour installer les différents logiciel de développements, nous avons mis la ligne "tags: dvlpt" car étant donner que nous ne l'utiliserons pas a chaque installation.Donc lorsque nous installerons une machine "dvlpt" ne s'installera pas, pour l'installer il faudrat utiliser --tags
- name: Install Dvlpt packages
apt: name={{item}}
with_items:
- apache2
- php
- mariadb-server
- phpmyadmin
- openjdk-8-jre
- geany
tags: dvlpt
===== xfce =====
- name: install driver amd/radeon
apt:
name: firmware-amd-graphics
when: ansible_product_name == "HP Compaq 6005 Pro SFF PC"
- name: Install base packages
apt: name={{item}}
with_items:
- xfce4
- xfce4-goodies
- gvfs
- gvfs-backends
- task-print-server
- chromium
- chromium-l10n
- firefox-esr
- firefox-esr-l10n-fr
===== packages =====
- name: Install base packages
apt: name={{item}}
with_items:
- vim
- mc
- tmux
- tcpdump
- net-tools
===== VirtualBox =====
- name: copie source.list vbox
copy:
src: files/sources.list.vbox
dest: /etc/apt/sources.list
- name: update repositories
apt: update_cache=yes
changed_when: False
- name: Install Vbox packages
apt: name={{item}}
with_items:
- virtualbox-5.2
===== Users =====
- name: create ansible user
user: name=ansible uid=900
- name: copy sudoers_ansible
copy:
src: files/sudoers_ansible
dest: /etc/sudoers.d/ansible
owner: root
group: root
mode: 0440
===== Script remove.dvlpt =====
Nous avons réaliser ce script car il arrive parfois de se tromper et d'installer de le playbook avec la partie développement sur une machine qui n'en à pas besoin, par conséquent si cela ce reproduit nous aurons juste à exécuter ce script.
il suffit simplement de l'éxécuter a distance sur la machine sio214-11
#!/bin/bash
apt remove phpmyadmin mariadb-server openjdk-8-jre geany php -y
===== Problème VirtualBox =====
Parfois il arrive que virtualBox rencontre certains problèmes au lancement d'une machine virtuelle.
le Téléchargement de l'extension pack ne se fait pas correctement, ce problème arrive sans qu'on ne sache pourquoi.
Néanmoins nous avons trouver la solution.
il suffit d'entrer cette commande dans votre terminal:
VBoxManage extpack install --replace +le nom de votre ancien extpack
===== auto proxy firefox =====
Afin d'avoir un accès a Internet via firefox il faut parametrer le navigateur sur "auto detection du proxy".
pour cela nous avons rajouter ces lignes dans le main.yml de notre playbook.
Le but étant de rajouter la ligne pref\(\"network.proxy.type\", 4\); a la fin du fichier /etc/firefox-esr/firefox-esr.js
le 4 signifie l'auto détection du proxy.
- lineinfile:
dest: /etc/firefox-esr/firefox-esr.js
state: present
regexp: '^pref\(\"network.proxy.type\", 4\);$'
line: 'pref("network.proxy.type", 4);'
===== main.yml =====
Notre playbook a beaucoup évoluer au cours des dernière semaine comme peut en témoigner le main.yml
- name: Install base packages
apt: name={{item}}
with_items:
- vim
- mc
- tmux
- tcpdump
- net-tools
- name: create ansible user
user: name=ansible uid=900
- name: copy sudoers_ansible
copy:
src: sudoers_ansible
dest: /etc/sudoers.d/ansible
owner: root
group: root
mode: 0440
- name: install cron job (ansible-pull)
cron: user="ansible" name="ansible provision" hour="13,18" job="/usr/bin/ansi$
- name: install poweroff cron job
cron: user="root" name="poweroff" minute="20" hour="18" job="/sbin/poweroff"
- lineinfile:
dest: /etc/firefox-esr/firefox-esr.js
state: present
regexp: '^pref\(\"network.proxy.type\", 4\);$'
line: 'pref("network.proxy.type", 4);'