Category Archives: Linux

[Hack] Mettre à jour nodeJS sur AWS Elastic Beanstalk

ElasticBeanstalk_Benefit_Productivity

Pour les besoins d’un projet, j’ai eu besoin d’utiliser nodeJS 6.x sur AWS. La dernière version LTS étant la 4.x, il me fallait trouver un moyen pour permettre cela.
Le détournement que j’ai trouvé, consiste en le fait d’installer nodeJS de manière classique avant de créer un lien symbolique vers le binaire utilisé par AWS.
Pour cela, il faut créer un fichier .ebextensions/01-node.config

Fixer la version

Tout d’abord, il faut une configuration permettant de fixer la version utilisée, afin d’éviter qu’elle se mettre à jour et que nos liens symboliques ne soient plus correctes.

  1. option_settings:
  2.     - namespace: aws:elasticbeanstalk:container:nodejs
  3.       option_name: NodeVersion
  4.       value: "4.4.3"
option_settings:
    - namespace: aws:elasticbeanstalk:container:nodejs
      option_name: NodeVersion
      value: "4.4.3"

Installer nodeJS

On va installer nodejs, mais également les outils de compilation de base permettant d’installer les modules npm développés en C++
Dans le cas où le binaire /usr/bin/node existe, on ne lance pas les commandes.

  1. commands:
  2.     100-node-script-installer:
  3.         command: "curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -"
  4.         test: "[ ! -x /usr/bin/node ]"
  5.     200-install_nodeJS:
  6.         command: "yum -y install nodejs gcc-c++ make"
  7.         test: "[ ! -x /usr/bin/node ]"
commands:
    100-node-script-installer:
        command: "curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -"
        test: "[ ! -x /usr/bin/node ]"
    200-install_nodeJS:
        command: "yum -y install nodejs gcc-c++ make"
        test: "[ ! -x /usr/bin/node ]"

Remplacer les binaires AWS EBS

On va faire une copie au cas où, elle va également nous servir pour vérifier que le binaire n’a pas déjà été remplacé.

  1. commands:
  2.     300-replace-node:
  3.         command: "mv node node.old && ln -s /usr/bin/node node"
  4.         cwd: "/opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin"
  5.         test: "[ ! -x /opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin/node.old ]"
  6.     350-replace-npm:
  7.         command: "mv npm npm.old && ln -s /usr/bin/npm npm"
  8.         cwd: "/opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin"
  9.         test: "[ ! -x /opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin/npm.old ]"
commands:
    300-replace-node:
        command: "mv node node.old && ln -s /usr/bin/node node"
        cwd: "/opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin"
        test: "[ ! -x /opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin/node.old ]"
    350-replace-npm:
        command: "mv npm npm.old && ln -s /usr/bin/npm npm"
        cwd: "/opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin"
        test: "[ ! -x /opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin/npm.old ]"

Le script complet

Ce script devrait fonctionner directement si place dans le bon répertoire. Référez vous à la documentation en conséquence !

  1. option_settings:
  2.     - namespace: aws:elasticbeanstalk:container:nodejs
  3.       option_name: NodeVersion
  4.       value: "4.4.3"
  5. commands:
  6.     100-node-script-installer:
  7.         command: "curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -"
  8.         test: "[ ! -x /usr/bin/node ]"
  9.     200-install_nodeJS:
  10.         command: "yum -y install nodejs gcc-c++ make"
  11.         test: "[ ! -x /usr/bin/node ]"
  12.     300-replace-node:
  13.         command: "mv node node.old && ln -s /usr/bin/node node"
  14.         cwd: "/opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin"
  15.         test: "[ ! -x /opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin/node.old ]"
  16.     350-replace-npm:
  17.         command: "mv npm npm.old && ln -s /usr/bin/npm npm"
  18.         cwd: "/opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin"
  19.         test: "[ ! -x /opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin/npm.old ]"
option_settings:
    - namespace: aws:elasticbeanstalk:container:nodejs
      option_name: NodeVersion
      value: "4.4.3"
commands:
    100-node-script-installer:
        command: "curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -"
        test: "[ ! -x /usr/bin/node ]"
    200-install_nodeJS:
        command: "yum -y install nodejs gcc-c++ make"
        test: "[ ! -x /usr/bin/node ]"
    300-replace-node:
        command: "mv node node.old && ln -s /usr/bin/node node"
        cwd: "/opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin"
        test: "[ ! -x /opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin/node.old ]"
    350-replace-npm:
        command: "mv npm npm.old && ln -s /usr/bin/npm npm"
        cwd: "/opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin"
        test: "[ ! -x /opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin/npm.old ]"

Yaourt sur Archlinux ARM

Salut,

Après avoir cherché à installer Yaourt sur mon Raspberry Pi, j’ai un peu galéré à le faire, et je n’ai rien documenté à ce sujet… Ce outil étant bien pratique, voir addictif pour l’utilisateur que je suis, je me retrouve à nouveau confronté à son installation pour l’image Archlinux du cloud ARM de Online, je fais donc un petit article rapidement pour ne pas répéter à nouveau cette erreur. La méthode est donc transposable à tous les autres matériels ARM.

Lire la suite »

Alertes rkhunter sur mes CT openvz

Suite à une installation vierge de debian pour mes containers virtuels Debian 7, j’ai depuis un petit moment des alertes sur RKhunter, rien d’alarmant mais sur les dizaines de CT que j’ai, ça avait tendance à spammer ma boite mail en me cachant la visibilité.

J’avais en réalité deux choses : Un problème d’io sur certains fichiers systèmes (que j’attribuerais au concept même des openvz) pour lesquels il fallait désactiver le test « os_specific ». Ainsi que le unhide.rb de RKhunter, que j’ai whitelisté. (Faudra que je me penche sur le paramètre DISABLE_UNHIDE qui doit servir à quelque chose…)

J’ai du coup fait une commande rapide permettant de fixer ça et vérifier le rapport, plus rapide que modifier les fichiers à la main !
cp /etc/rkhunter.conf /etc/rkhunter.conf.old && sed -i 's/DISABLE_TESTS="/DISABLE_TESTS="os_specific /g' /etc/rkhunter.conf && echo 'SCRIPTWHITELIST=/usr/bin/unhide.rb' >> /etc/rkhunter.conf && rkhunter --propupd && rkhunter --checkall --report-warnings-only

Mettre à jour Mint 14 Nadia vers Mint 15 Olivia

Une nouvelle version de Linux Mint est sortie le 29 mai. Au programme nouvelles version d’un peu tout… Rien d’extraordinaire.
Petit mémo rapide pour mettre à jour les dépots et upgrade linux Mint.
Lire la suite »

Installer MariaDB

Mariadb-seal-shaded-browntext-alt

Hier, je me suis dit : et si je commençais par installer mariaDB sur mon environnement local, afin de soulever les lièvres avant une mise en production ?

Le but était de voir si l’utilisation était aussi trivial qu’il en est question sur la toile.
En effet, c’est très simple, cependant j’ai noté un problème majeur…
Lire la suite »