mercredi 23 août 2017

VMWare resize disk avec LVM

Avec VMWARE souvent, on a besoin d'etendre le disque virtuel d'une VM.
Plutot que de creer un nouveau disque, le plus simple et de resize le disque existant.

Dans la console Vcenter augmenter la taille du disque souhaite.

Puis a niveau de l'OS,il faut faire reconnaire a la VM la taille du nouveau disque, sdX etait son disque.
Pour connaitre l'emplacement du disque on peut utiliser lsscsi ou regarder les dernieres entrees de dmesg.
Pour rescan :
echo 1 > /sys/block/sdX/device/rescan

Si tout va bien, on peut faire un pvresize pour faire reconnaitre a LVM la nouvelle taille
pvresize /dev/sdX
Si tout va bien l'espace disponible apparait dans VGS et dans ce cas on peut extend le logical volume, par example :
lvextend VGname/LVname -l +100%FREE


Enfin reste a augmenter le filesystem avec simplement un resize2fs et le tour est joue.


Alternative, si on souhaite augmenter la partition d'un disque.

Dans ce cas, on rescan puis cfdisk /dev/sdX pour verifier l'espace libre du disque. Eliminer la partition a etendre, puis la recreer avec le meme type (le plus souvent 8e pour LVM), sauvegarder, partprobe pour reconnaitre la nouvelle taille de la partition. Puis suivre les meme etapes, pvresize, lvextend. 

lundi 17 juillet 2017

UFW memo

Generalement sur le serveur cloud j'utilise shorewall mais avec les Ubuntu, je teste UFW.

UFW me semble un peu trop simple et je regrette le manque de gestion par zones comme avec Shorewall, par example pour authoriser toutes les communications sur la zone local.

Mais UFW est simple et facile a gerer.
Example de commande :
  • ufw status - etat de UFW retourne l'etat disable/enable et si enable la liste des regles.
  • ufw allow port_numer - authorise un port
  • ufw allow http ou https - pour manipuler des regles
  • ufw allow from x.y.w.z to any port portnumber - pour authoriser une IP vers port specifique

Enfin la configuration est dans /etc/ufw
Dans user.rules on retourve les regles et on peut les personnaliser.

En bref UFW est simple, rapide a manier et permet de proteger votre serveur.

lundi 26 juin 2017

Elastic search


 Mes premiers pas avec Elastic Search


Pour les besoins d'un nouveau projet, j'ai monte un Elastic Search (ES) et commencer a jouer avec.
Pour verifier que les donnees etaient bien en cours de restoration, je me suis a regarder les requetes dispos.
Je copie celle que j'utilise le plus souvent.

Pour verifier l'etat du cluster. Si vous disposer seulement d'un serveur l'etat sera : Yellow
curl -XGET 'localhost:9200/_cat/health?v&pretty'

Les indices :
curl -XGET 'localhost:9200/_cat/indices?v&pretty'

Etat des serveurs
curl -XGET 'localhost:9200/_cat/nodes?v&pretty'
Etat des thread
curl -XGET 'localhost:9200/_cat/thread_pool/search?v&h=host,name,active,rejected,completed'
Finalement j'ai pris 3 serveurs chez Digital Ocean avec l'option reseau prive et cree un cluster de 3 nodes tres facilement.

Le detail dans un autre post.
A+



dimanche 16 avril 2017

Windows IIS rediriger HTTP vers HTTPS avec un exception


Comment rediriger HTTP vers HTTPS et comment faire une exception avec Internet Information Services IIS/Windows.

Tout d'abord installer le module rewrite depuis le site www.iis.net

Puis modifier le ficher web.config a la racine de votre site comme suit :

La première règle crée une exception lorsque l'url match  ^data/sys/.* mais ensuite la deuxième règle forward tout le HTTP vers le HTTPS.

De cette façon, il possible de manager son IIS et sécuriser son site.


<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="NoSSL - folder" enabled="true" stopProcessing="true">
<match url="^data/sys/.*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
</conditions>
<action type="None" />
</rule>
<rule name="Redirect to https" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

samedi 25 février 2017

Creer de la memoire swap sur des petites instances cloud

Si comme moi vous utilisez des petites instances Cloud chez Google Cloud, Digital Ocean ou autres, des petits servers a $5 avec 512Mo de ram et pas de swap. Parfois il ne reste plus assez de memoire disponible.
Par example, c'est le cas sur mon serveur : Asterisk, LAMP.

Dans ce cas le plus simple est de creer un fichier swap qui permet d'augmenter les ressources de votre serveur sans en augmenter le cout et qui en plus vous permet de profiter des performances de votre disque dur "virtuel", du SSD presque comme de la RAM.

  • fallocate -l 2G /swapfile
  • chmod 600 /swapfile
  • mkswap /swapfile
  • editer votre /etc/fstab
    • /swapfile    swap    swap    defaults    0 0
  • swapon -av
Plus rapide que de faire un dd, j'utilise fallocate pour creer un fichier swap de 2G. Puis swapon pour activer la swap et le tour est joue (comme ca vous etes sur que l'entree dans fstab est correcte).

Fini l'alerte concernant la swap et surtout un peu plus de memoire plus d'appels qui se coupe, enfin possible d'upgrader le serveur, ...

lundi 19 décembre 2016

Ajout de RPM manuel a un repertoire YUM local

Sans Red Hat Satellite impossible de mettre a jour ou d'installer des paquets sans internet.
La solution DYI est d'installer un repertoire YUM local.
Facile il suffit de copier le contenu d'un DVD, par example /opt/YUMREPO/RHEL6.8

De creer une conf Apache
/etc/httpd/conf.d/rhel6.conf
Options Indexes FollowSymLinks

Alias /rhel6 "/opt/YUMREPO/RHEL6.8"
<Directory "/opt/YUMREPO/RHEL6.8">
    Options Indexes MultiViews FollowSymlinks
    AllowOverride All
    Require all granted
</Directory>

Chez le client utiliser le fichier repo suivant :

[RHEL6]
name=RHEL6
baseurl=http://myserver/rhel6
gpgcheck=0
enabled=1

A distribuer avec son outils preferé.


Mais ensuite que se passe-t-il lorsqu'on souhaite ajouter un paquet manuellement ?

Facile, il suffit de copier le paquet dans la route, par example
cp kmod-oracleasm-2.0.8-13.el6_8.x86_64.rpm /opt/YUMREPO/RHEL6.8
Puis de mettre a jour le repertoire :
createrepo --update /opt/YUMREPO/RHEL6.8

Depuis le client eventuellement mettre a jour le cache :
yum clean all

Et le tour est joué

=============================================================================================================================================================
 Package                                  Arch                             Version                                     Repository                       Size
=============================================================================================================================================================
Installing:
 kmod-oracleasm                           x86_64                           2.0.8-13.el6_8                              RHEL6                            35 k

 De cette facon, il possible de mettre dans le repertoire des paquets ou bien de les actualiser en executer createrepo --update une nouvelle fois.

dimanche 13 novembre 2016

Envoyer des emails depuis instance Google Cloud Platform avec Mailgun

Premiers pas sur Google Cloud Platform, GCP 
Google bloque tous les emails sortant passant par le port TCP/25 (SMTP) et invite a utiliser un tiers :
  • SendGrid, Mailgun, ou Mailjet
  • Google Apps domain
  • Serveur email prive 
Personnellement j'ai choisi Mailgun : gratuit - 30 000 emails envoyé par mois. Il suffit d'un compte Google.

Pour utiliser Mailgun, il faut realiser deux configuration comme pre-requis.

Configurer Postfix

Configurer Postfix de la façon suivante :

relayhost = [smtp.mailgun.org]:2525
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtp_tls_note_starttls_offer = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = static:postmaster@mondomain.com:monpassword
smtp_sasl_security_options = noanonymous
smtp_sasl_auth_enable = yes

Le nom d'utilisateur et son mot de passe son disponible sur le Dashboard de Mailgun




 

Valider son domaine : configurer son DNS

Mailgun a besoin de valider le domaine pour envoyer et même recevoir les emails, pour valider le domaine, créer les enregistrements suivants :

  • TXT     “v=spf1 include:mailgun.org ~all”     SPF (Required)
  • TXT     copier le DKIM (disponible sur le dashboard)
  • CNAME     “mailgun.org”     Tracking (pour effectuer un suivi, optionel)
Par exemple :
  • Name : @, type:  TXT valeur : "v=spf1 include:mailgun.org ~all"
  • Name : mx._domainkey, type : TXT, valeur : "k=rsa; p=...MIGfMA0GCSqGS"
Attendre la réplication DNS et le domaine doit passer comme "Valider, en vert"

Une fois réaliser et valider ces deux pre-requis, le compte Mailgun est fonctionnel et permet d'envoyer des emails depuis votre instance Google Cloud.
Enfin Mailgun permet également de recevoir des emails, de réaliser un suivi, de créer des campagnes et propose de nombreuses API.
De facon, on realise ces premiers pas dans le Cloud.