INTRODUCTION

Pas évident d'avoir des AMI amazon qui correspondent réellement à ce qu'on souhaite. (partitionnement, Filesystem, LVM, ...)

Ci dessous une méthode pas trop compliquée pour créer sa propre AMI configurée comme on le souhaite. Ca passe par l'installation via VNC de CentOS.

Il doit également etre possible de faire exactement la meme chose en passant un fichier kickstart à grub pour meme pas avoir besoin de faire de VNC (pas testé, mais ca ne saurait tarder :))

VNC est une option disponible pour l'install : voir doc officielle d'install RHEL 7

MODE OPERATOIRE

L'idée est donc de déployer une instance quelquonque que nous allons modifier pour faire booter sur le noyau d'install CentOS avec activation de VNC.

Je suis partit pour ma part d'une CentOS 6.5 (HVM / EBS) : RightImage_CentOS_6.5_x64_v14.1_HVM_EBS - ami-1abb616d

Cette image sera détruite durant l'installation

On récupère ensuite le kernel et initrd d'install :

  • http://mirror.centos.org/centos-7/7/os/x86_64/isolinux/vmlinuz
  • http://mirror.centos.org/centos-7/7/os/x86_64/isolinux/initrd.img

Qu'on va mettre dans /boot/centos7 de l'instance précédement crée.

On modifie ensuite la config grub (/boot/grub/grub.conf) pour y mettre :

default         0
timeout         0
hiddenmenu

title        centos 7 VNC INSTALL
root        (hd0,0)
kernel     /boot/centos7/vmlinuz inst.vnc inst.vncpassword=XXXXXXXX inst.headless ip=dhcp ksdevice=eth0
inst.repo=http://mirror.centos.org/centos-7/7/os/x86_64/ inst.lang=en_US inst.keymap=us
initrd      /boot/centos7/initrd.img

Si on souhaite utiliser un fichier kickstart (pas testé), il suffit de passer l'option inst.ks=http://chemin.du/fichier/kickstart.ks

On fera attention au security group pour laisser accessible le port 5901.

On reboot ensuite le serveur et on se connecte en VNC dessus et on fait l'install comme devant un écran.

VNC met un peu de temps avant d’être accessible

Une fois l'install terminée, il suffi de transformer l'instance en AMI et voila le tour est joué

UN PETIT MOT CENTOS 6

Il est tout à fait possible de reproduire le meme type d'install sur CentOS 6.

Le kernel et initrd à récupérer :

  • http://mirror.centos.org/centos-6/6.5/os/x86_64/isolinux/vmlinuz
  • http://mirror.centos.org/centos-6/6.5/os/x86_64/isolinux/initrd.img

Les paramètres grub sont par contre légèrement différents :

kernel         /boot/centos6/vmlinuz vnc vncpassword=XXXXXXXX headless ip=dhcp ksdevice=eth0 
method=http://mirror.centos.org/centos-6/6.5/os/x86_64/ lang=en_US keymap=us xen_blkfront.sda_is_xvda=1 
initrd         /boot/centos6/initrd.img



Ressources :

  • RHEL 7 Anaconda Boot Options
  • RHEL 6 Anaconda Boot Options
  • http://blog.mapstrata.com/aws-custom-centos-image/
  • http://www.andrewklau.com/roll-your-own-centos-6-5-hvm-ami-in-less-than-15-minutes/
  • http://www.sentris.net/billing/knowledgebase/25/How-to-re-install-Centos-yourself-remotely.html