Un monde d'octets

Aller au contenu | Aller au menu | Aller à la recherche

Ingénierie Système

Fil des billets

samedi, janvier 8 2022

Osx prometheus node exporter

Pour installer le node exporter de prometheus sur osx, faites confiance a homebrew :

brew install node_exporter

puis ajoutez les lignes suivantes a /usr/local/etc/node_exporter.args

--web.listen-adress :9101

Et démarrez le service :

brew services start node_exporter

Votre exporter est maintenant fonctionnel

samedi, octobre 10 2020

Grafana : Dashboard of interrest

Node Exporter Full with Node Name (10242)

mercredi, septembre 9 2020

Principaux éléments à intégrer dans un cahier des charges

Extrait de https://cahiersdescharges.com/exemp...

Contexte

Expliquez en quelques mots le fondement de la demande. Il ne suffit pas simplement d’exprimer l’aspect technique d’un projet, une vue générale aidera les prestataires à comprendre mieux et plus rapidement les les tenants et aboutissants du projet.

Exemple : Pour un site web, ne décrivez pas seulement vos attentes, parlez également des ressorts qui vous ont poussé à opérer un changement de site web ou encore la typologie de vos clients par exemple.

Objectif

Expliquez de façon complète les différents objectifs du projet. Quelle seront les finalités du projet pour votre entreprise.

Exemple : Pour un site web, le objectifs commerciaux et/ou marketing du site doivent être clairement rédigés. Ces objectifs ont une influence majeur sur les différents travaux qui seront mis en place pour réaliser le projet.

Périmètre

Expliquez de façon succincte les limites de votre projet. Vous répondrez ainsi aux questions : À qui s’adresse-t-il ? À quel moment ?

Exemple : Le projet implique-t-il tous les partenaires ? Tous les clients sont-ils concernés ? Tous les payss ? ...

Fonctionnement

Décrivez de manière exhaustive les différents leviers du projet à travers une description fonctionnelle qui consiste à expliquer les besoins en terme de fonctionnalités.

Exemple : Expliquez en quelques mots ce que doit faire votre site web : récupérer des contacts, vendre des produits, proposer une inscription à la newsletter…

Ressources

Listez l’ensemble des ressources disponibles ainsi que les contraintes pour la réalisation du projet.

Exemple : Le nombre d’employés qui s’occupera de la gestion du site web ou encore leur faible connaissance des outils informatique.

Budget

Établir un budget est important pour aiguiller les prestataires et éviter une déconvenue lors de la réception des premiers devis.

Exemple : Donnez le budget total d’un projet de création de site avec la rédaction, l’hébergement, le webdesign et le développement.

Délais

Autre variable déterminante, le délais de réalisation et la date de livraison. Elle permet au prestataire d’évaluer la durée de travail et de s’organiser. Pour vous, le délais indiqué sur le cahier des charges sert de preuve.

Exemple : la durée inscrite sur le CDC peut être inscrite sur le devis et la facture du prestataire.

vendredi, juin 5 2020

Vault d'Hashicorp, ou comment stocker de facon sécurisée nos identifiants

vault

Installation

Sous ubuntu, vault s'installe avec snap (comme beaucoup de produits hashicorp)

# snap install vault 

Démarrer un serveur de test sans https

# vault server -dev 
# export VAULT_ADDR='http://127.0.0.1:8200'

il faut positionner l'environnement pour dialoguer en http, sinon nous auront une erreur http over https. vault considère son adresse par default comme https://127.0.0.1:8200/

# vault status 

Key             Value
---             -----
Seal Type       shamir
Initialized     true
Sealed          false
Total Shares    1
Threshold       1
Version         1.1.1
Cluster Name    vault-cluster-7640183a
Cluster ID      1cbdf2eb-c7ec-633d-c398-e9fa3333c7d3
HA Enabled      false

Il pourra être intéressant d'avoir un cluster vault pour éviter les SPOF

Création d'une key/value

# vault kv put secret/basket login=admin
Key              Value
---              -----
created_time     2020-06-05T08:13:16.165816113Z
deletion_time    n/a
destroyed        false
version          1

# vault kv put secret/basket password=poweruser

Key              Value
---              -----
created_time     2020-06-05T08:13:30.598469939Z
deletion_time    n/a
destroyed        false
version          2

le piege est que basket est en fait versionné. Si nous faisons ces deux commandes successivement, nous notons que seul le password de stocké, et a écrasé l'ancien secret. Il faut donc, soit passer les deux k/v sur la même commande, soit utiliser un fichier pour importer nos k/v.

#vault kv put secret/basket @basket-secrets.json

ou basket-secrets.json est un json contenant nos k/v :

{
  "username":"admin",
  "password":"poweruser"
}

Lire un secret

Cela peut se faire directement, ou via un json qui sera ensuite traité par jq

# vault kv get --field password secret/basket 
# vault kv get --format=json secret/basket | jq -r .data.data.password

Détruire un secret

# vault kv delete secret/basket

vendredi, mai 29 2020

Un peu de traduction

Toujours des acronymes, mais bon, si on cherche sur des sites anglais on peu y être confrontés

BCP : Business Continuity Plan
Notre PCA, Plan de Continuité d'activité 
Haute disponibilité, site secondaire, ...
DRP : Disaster Recovery Plan
Notre PRA, Plan de Reprise d'activité 
Saugevegardes/Restaurations

mardi, avril 21 2020

Question a se poser lors de la reprise d'un parc serveur

Politique de nommage

  • Existe t'il un nommage cohérent et adapté aux besoins
  • Impact du changement
  • Existe-t-il une dns externe, interne, dotée de vues utilisateurs

Politique de sauvegarde

  • Comment sont fait les sauvegardes (Périodicité, Incrémentales, Full, Différentielles)
  • Quel est la politique de rétention
  • Y'a t'il un monitoring de la volumétrie et est elle suffisante et extensible

Politique NTP

  • Comment les serveurs sont t'il synchronisés
  • Quel est l'impact d'une différence de TZ entre les serveurs

Politique Logs

  • Qu'est ce qui est loggé ?
  • Ou est-ce loggué ?
  • Quelle est la rétention ?
  • Quelle est la période d'aggrégation ?

mercredi, janvier 15 2020

Installer Active Directory, Powershell powered

L'installation d'ad via powershell a l'avantage de ne pas avoir à lancer de multiples "click-box" :)

Add-WindowsFeature AD-Domain-Services
Install-ADDSForest -DomainName pepiniere.local -InstallDNS

Quelques questions sont posées et il suffit d'y répondre correctement et notre AD avec sa première forêt est prêt.

Activer WinRMI pour ....

Nous pouvons installer Powershell sous linux :

sur une ubuntu 18.04, nous installons powershell avec le role ansible suivant :

- name: Install Xenial Security Repository
  apt_repository:
    repo: deb http://security.ubuntu.com/ubuntu xenial-security main
    state: present
    filename: xenial-security

- name: Install libicu55
  apt:
    pkg:  libicu55
    state: present

- name: install Powershell
  apt: 
    deb: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.18/powershell_6.0.0-alpha.18-1ubuntu1.16.04.1_amd64.deb 

qui techniquement ne fait rien d'autre que les commandes suivantes sous linux :

apt install libicu55
wget https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.18/powershell_6.0.0-alpha.18-1ubuntu1.16.04.1_amd64.deb
dpkg -i powershell_6.0.0-alpha.18-1ubuntu1.16.04.1_amd64.deb

Après cela nous avons powershell 6.0.0 sous linux, mais pour quoi faire me direz vous, et bien pour administrer nos windows à distance bien sur !

Sous windows, nous lançcons powershell, et exécutons les commandes suivantes :

Enable-PSRemote
Set-WSManQuickConfig

Je n'ai pas encore réussi à me connecter au serveur distant depuis linux, mais techniquement la brique semble fonctionnelle.

vendredi, décembre 13 2019

Calcul d'un TJM, approche élémentaire

voila le principe :

Salaire brut mensuel: 4000 €
Frais de fonctionnement (+10%) : 4 400 €
Charges patronales statut cadre (x 1.54): 6 776 €
Base 19 jours en moyenne travaillés par mois (soit 228 jours par an déduction des 5 Semaines de congés payés et des 5/7 jours fériés)
Taux journalier plancher : (6 776/ 19) = 356.63 € HT par jour

vendredi, février 15 2019

Montages de disques "intelligents"

La plupart des osx récents savent monter les disques dur automatiquement. Seulement, voila, il faut être devant la machine pour cela. Quid d'un accès distant :

Linux

ssh user@machine :

gvfs-mount --list
gvfs-mount -d <device>

sur les linux récents, gvfs-mount a été remplacé par gio-mount.

OsX

diskutil list
diskutil mount <DiskIdentifier>

Voila un petit pense bête de plus ...

mercredi, janvier 2 2019

Décoder une trame hexadécimale

parfois, on a une trame sur un site web écrite comme un hexdump :

00 05 73 a0 00 00 e0 69 95 d8 5a 13 86 dd 60 00
00 00 00 9b 06 40 26 07 53 00 00 60 2a bc 00 00
00 00 ba de c0 de 20 01 41 d0 00 02 42 33 00 00
00 00 00 00 00 04 96 74 00 50 bc ea 7d b8 00 c1
d7 03 80 18 00 e1 cf a0 00 00 01 01 08 0a 09 3e
69 b9 17 a1 7e d3 47 45 54 20 2f 20 48 54 54 50
2f 31 2e 31 0d 0a 41 75 74 68 6f 72 69 7a 61 74
69 6f 6e 3a 20 42 61 73 69 63 20 59 32 39 75 5a
6d 6b 36 5a 47 56 75 64 47 6c 68 62 41 3d 3d 0d
0a 55 73 65 72 2d 41 67 65 6e 74 3a 20 49 6e 73
61 6e 65 42 72 6f 77 73 65 72 0d 0a 48 6f 73 74
3a 20 77 77 77 2e 6d 79 69 70 76 36 2e 6f 72 67
0d 0a 41 63 63 65 70 74 3a 20 2a 2f 2a 0d 0a 0d
0a

pour la décoder, le script suivant fait le travail :

cat trame | tr ' ' '\n' | awk '{printf ("%c",strtonum("0x"$1))}'

Voila !

Plus simple :

cat trame | xxd -r -p

samedi, septembre 1 2018

Netapp : 9 terms to know

Extrait de youtube

  • SnapMirror : backup d'un site a un autre, synchrone ou asynchrone, entre deux stockages locaux
  • Metro Cluster: clustering entre deux Netapps, synchronous, real-time, and failover, à condition qu'ils soient identiques (version d'os, dimensionnement, ...)
  • SnapVault : prendre une copie snapmirror et marquer comme archive (long terrm storage)
  • Wafl : le plus bas niveau, le filesystem, Write Anywhere File Layout, écriture simultanée sur l'aggrégat
  • On Commands : netapps suite of software pour le parametrage des disques et volumes (remplaçant de filer view)
  • Data On Tap : système d'exploitation de netapp
  • Aggregate : groupe de disques et les volumes sont battis sur les aggregats, souvent en raid dual parity (au moins trois disques)
  • Seven Mode : ancien os (2500 series)
  • Clustered Data On Tap : jusqu'a 16 controlleurs (contre 2 dans Seven Mode)

mercredi, juillet 18 2018

Upgrade de serveurs dans un contexte "sur site/on premise"

Contextes :

Raid 1
  • deracker un disque
  • upgrader
  • valider
  • si ok, reracker
  • si ko, racker un disque vierge à la place
  • surveiller la reconstruction
Raid 0, ou 5
  • faire un nouveau serveur
Virtualisé
  • snapshot
  • upgrader
  • valider
  • si ko, revenir au snapshot
  • si ok, laisser en prod

Dans un cas de cloud, les regles changent (savoir si nous sommes sur de l’hébergement physique ou du virtualisé, et si oui, quid des

samedi, juillet 14 2018

Architecture web haute tolérance

- HLB1 et HLB2

  • haproxy
  • configurations identiques
  • ip reprises par corosync si chute du maître
  • Conservation des sessions web pour éviter le jump

- Cluster de serveurs apache en backend des HLB

  • nfs ou glusterfs répliqué pour /var/www/
  • php-fpm pour les performances
  • memcached pour le stockage des sessions

- Mysql en réplication Maitre-Maitre avec identifiants décalés (pair/impair) pour éviter les collisions

  • corosync pour haute disponibilité avec ip 1 maitre sur mysql 1 et ip 2 maitre sur mysql 2 (idée à valider)
  • synchro faite sur ip privée et non publique (pour éviter la synchro avec soi meme)

On peut aussi utiliser repcached pour faire de la réplication de memcached.

Il reste encore plein de possibilité pour améliorer tout cela :

  • Accelérateurs HTTP (varnish)
  • Backend cache statiques en parallèle avec serveur actifs pour clients particuliers

Liens utiles :

lundi, novembre 18 2013

Package à installer sur un poste d'administrateur système et réseau

Analyse réseau :

apt-get install wireshark tshark ettercap etherape
apt-get install dsniff
apt-get install iptraf tcpstat
apt-get install nmap hping3

Forensics :

apt-get install gddrescue gparted
apt-get install testdisk dff