03 Dec 2015, 23:26

kubernetes on arm

Après mon billet sur Docker Swarm sur ARM et malgré les améliorations de Swarm, il manque un petit orchestrateur à tout ça pour s'assurer que les containers dockers soient "up & running". Du coup, je suis assez vite tombé sur Kubernetes. Ayant des Raspberry 1 et des Cubietruck à la maison, j'ai cherché à voir s'il était possible de tester kubernetes sur arm. Je suis tombé sur cet article et via une "issue" sur le projet associé, j'ai découvert le projet kubernetes-on-arm.

A l'heure ou je vous parle et avec la sortie de la version 0.6.0, je peux donc créer un cluster kubernetes composé de 2 cubietrucks et 2 RPi v1. Reste maintenant à me familiariser avec kubernetes...

Une version encore plus poussée serait d'aller vers OpenShift Origin ; un guide d'installation semble exister...

En route pour le IaaS/PaaS auto-hébergé :-)

14 Nov 2015, 17:24

Grafana 2.6.0 sur Raspberry Pi (arm)

Après l'installation d'InfluxDB (d'ailleurs mis à jour pour la version 0.9.4), voici le tutoriel pour installer Grafana sur un Raspberry Pi 2 sous Debian Jessie.

# Install fpm (used to build deb/rpm package)
$ sudo apt install ruby-dev gcc rpm
$ sudo gem install fpm
# Install node from adafruit : https://learn.adafruit.com/node-embedded-development/installing-node-dot-js
$ curl -sLS https://apt.adafruit.com/add | sudo bash
$ sudo apt install node
# Install Go
$ wget https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer
$ chmod +x gvm-installer 
$ ./gvm-installer
$ source /home/pi/.gvm/scripts/gvm
$ gvm install go1.4.2 ; https://github.com/moovweb/gvm/issues/155
Downloading Go source...
Installing go1.4.2...
 * Compiling...
# Set default version of go
$ gvm use go1.4.2 --default
Now using version go1.4.2
$ gvm install go1.5.2 
Updating Go source... 
Installing go1.5.2... 
* Compiling... 
# Set default version of go 
$ gvm use go1.5.2 --default 
Now using version go1.5.2
$ gvm pkgset create grafana
$ gvm pkgset use  grafana
Now using version go1.5.2@grafana
$ go get github.com/tools/godep
$ go get -t -d github.com/grafana/grafana
$ cd .gvm/pkgsets/go1.5.2/grafana/src/github.com/grafana/grafana/
$ git checkout tags/v2.6.0
$ go run build.go setup
$ godep restore
# In package.json, remove/comment the karma-phantomjs-launcher line - cf https://github.com/grafana/grafana/issues/3515
$ npm install
$ sudo npm install -g grunt-cli
# Change build.go file, line 76, with grunt("--force","release") to bypass an issue with phantomjs (cf. https://github.com/grafana/grafana/issues/2683).
grunt("--force","release")
# Then fix a timeout issue:
$ sed -i 's/baseUrl: '\''.\/app'\'',/baseUrl: '\''.\/app'\'',waitSeconds: 0,/' tasks/options/requirejs.js
# In tasks/default_task.js and tasks/build_task.js, remove/comment the karma:test and phantomjs occurences 
# as phantomjs does not exist on arm yet - cf https://github.com/grafana/grafana/issues/3515
# Build package
$ go run build.go build package
# Install package
$ sudo dpkg -i dist/grafana_2.6.0_armhf.deb
# Launch Grafana
$ sudo systemctl enable grafana-server
$ sudo systemctl start grafana-server
# Acess Grafana
=> http://rasp.ip:3000/

Sources :

Edition du 14/12/2015 - Mise à jour pour Grafana 2.6 / Go 1.5+

29 Aug 2015, 23:47

InfluxDB 0.9.6 sur un Raspberry Pi (arm)

Venant d'acquérir un module "Sense Hat" pour mon Raspberri Py 2 afin de suivre la témpérature, la pression et l'humidité de la maison d'une part et de jouer avec les principes et outils de big data & data science (analyse des données, machine learning, etc) pour me faire la main et aussi jouer avec influxDB qui est la base idéale pour recevoir ces données.

Pour installer InfluxDB, il faut au préalable installer Go via gvm (Go Version Manager) :

$ wget https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer
$ chmod +x gvm-installer 
$ ./gvm-installer
Cloning from https://github.com/moovweb/gvm.git to /home/pi/.gvm
No existing Go versions detected
Installed GVM v1.0.22
Please restart your terminal session or to get started right away run
 `source /home/pi/.gvm/scripts/gvm`
$ source /home/pi/.gvm/scripts/gvm
# Install Go 1.4 before Go 1.5 : https://github.com/moovweb/gvm/issues/155
$ gvm install go1.4.2
Downloading Go source...
Installing go1.4.2...
 * Compiling...
$ gvm use go1.4.2 --default
Now using version go1.4.2
$ gvm install go1.5.2
Updating Go source... 
Installing go1.5.2... 
* Compiling... 
$ gvm use go1.5.2 --default
Now using version go1.5.2
$ sudo apt-get install bison 
$ sudo apt-get install ruby-dev gcc
$ sudo gem install fpm # Cf https://github.com/influxdb/influxdb/issues/3557
$ gvm pkgset create influxdb
$ gvm pkgset use influxdb
Now using version go1.5.2@influxdb
$ go get github.com/tools/godep
$ go get -t -d github.com/influxdb/influxdb
$ cd .gvm/pkgsets/go1.5.2/influxdb/src/github.com/influxdb/influxdb
$ ./package.sh -t deb -p 0.9.6
$ sudo dpkg -i influxdb_0.9.6_armhf.deb
$ sudo systemctl enable influxdb
$ sudo systemctl start influxdb
$ /opt/influxdb/influx
Connected to http://localhost:8086 version 0.9.6
InfluxDB shell 0.9.6

Et voilà, il ne reste plus qu'à jouer avec tout ça !

[Edit 12/11/15] Amélioration & mise à jour pour 0.9.4

[Edit 11/12/15] Amélioration & mise à jour pour 0.9.6 et utilisation de Go 1.5.2

 

04 Sep 2014, 13:00

Postgresql 9.3.5 pour Debian Wheezy et architecture armhf (raspberry, cubieboard, cubietruck, etc)

La fondation Postgres ne fournit des paquets debian/ubuntu que pour les architectures i386/x86_64 ; Voulant avoir une version 9.3 pour mes projets sur carte Raspberry / Cubietruck, j'ai donc recompilé les paquets sur la base des informations fournies ici que je complète.

### add postgre’s sources to apt
sudo echo "deb-src http://apt.postgresql.org/pub/repos/apt/ wheezy-pgdg main" >> /etc/apt/sources.list.d/pgdg.list

### add apt key if not done before
wget –quiet -O – https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

### Prepare your own environment
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential fakeroot

### Satisfy your dependencies
sudo apt-get build-dep postgresql-9.3
sudo apt-get build-dep postgresql-common
sudo apt-get build-dep postgresql-client-common
sudo apt-get build-dep pgdg-keyring

### !!! ATTENTION -> do not run as root or build will fail on test “can not run tests as root”.
### As it can require quite a long time, you are encourage to have a remote session using screen or tmux for example to avoid network disconnection.
cd /tmp
apt-get source --compile postgresql-9.3
apt-get source --compile postgresql-common
apt-get source --compile postgresql-client-common
apt-get source --compile pgdg-keyring

### create own repository
sudo mkdir /var/local/repository
sudo echo "deb [ trusted=yes ] file:///var/local/repository ./" > /etc/apt/sources.list.d/my_own_repo.list
sudo mv /tmp/*.deb /var/local/repository/
cd /var/local/repository
sudo dpkg-scanpackages ./ > Packages && gzip -f Packages

### Update your package list
sudo apt-get update

### <:o) install postgres
sudo apt-get install postgresql-9.3

### list of generated packages :
libecpg6_9.3.5-1.pgdg70+1_armhf.deb
libecpg-compat3_9.3.5-1.pgdg70+1_armhf.deb
libecpg-dev_9.3.5-1.pgdg70+1_armhf.deb
libpgtypes3_9.3.5-1.pgdg70+1_armhf.deb
libpq5_9.3.5-1.pgdg70+1_armhf.deb
libpq-dev_9.3.5-1.pgdg70+1_armhf.deb
pgdg-keyring_2013.2_all.deb
postgresql_9.3+154.pgdg70+1_all.deb
postgresql-9.3_9.3.5-1.pgdg70+1_armhf.deb
postgresql-9.3-dbg_9.3.5-1.pgdg70+1_armhf.deb
postgresql-client_9.3+154.pgdg70+1_all.deb
postgresql-client-9.3_9.3.5-1.pgdg70+1_armhf.deb
postgresql-client-common_154.pgdg70+1_all.deb
postgresql-common_154.pgdg70+1_all.deb
postgresql-contrib_9.3+154.pgdg70+1_all.deb
postgresql-contrib-9.3_9.3.5-1.pgdg70+1_armhf.deb
postgresql-doc_9.3+154.pgdg70+1_all.deb
postgresql-doc-9.3_9.3.5-1.pgdg70+1_all.deb
postgresql-plperl-9.3_9.3.5-1.pgdg70+1_armhf.deb
postgresql-plpython3-9.3_9.3.5-1.pgdg70+1_armhf.deb
postgresql-plpython-9.3_9.3.5-1.pgdg70+1_armhf.deb
postgresql-pltcl-9.3_9.3.5-1.pgdg70+1_armhf.deb
postgresql-server-dev-9.3_9.3.5-1.pgdg70+1_armhf.deb
postgresql-server-dev-all_154.pgdg70+1_all.deb

have fun.

Si quelqu'un est intérressé par la mise en place d'un dépôt, qu'il se manifeste.