Dernière mise à jour le 18/03/2022
Objectif
Dans certaines situations, il vous sera nécessaire de lancer un script lors de la création de votre instance. Par exemple, dans le cas ou vous souhaitez configurer plusieurs clés SSH pour votre instance, ou bien pour configurer votre service SSH automatiquement.
Ce guide vous explique comment lancer un script lors de la création de votre instance via Cloud-init et les API OpenStack.
Prérequis
- Préparer l'environnement pour utiliser l'API OpenStack
- Charger les variables d'environnement OpenStack
En pratique
Creation d'un script
Il existe plusieurs possibilités de scripts utiles à lancer lors de la création d'une instance. Vous pouvez par exemple utiliser des scripts shell :
- Ajout d'un nouvel utilisateur :
#!/bin/bash
adduser ovh -gecos "" --disabled-password
echo "ovh ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
mkdir /home/ovh/.ssh
echo "VOTRE_CLE_SSH_PUBLIQUE" > /home/ovh/.ssh/authorized_keys
Ce script vous permet de créer un utilisateur nommé "ovh". On lui donne ensuite les accés sudo et on ajoute sa clé ssh.
- Modification de la configuration SSH :
#!/bin/bash
sed -i 's/Port\ 22/Port\ 2211/g' /etc/ssh/sshd_config
sed -i 's/PermitRootLogin\ yes/PermitRootLogin\ no/g' /etc/ssh/sshd_config
service ssh restart
Ce script permet de modifier le port SSH par défaut (22 -> 2211) et d'interdire la connexion à l'aide de l'utilisateur "root".
- Mise à jour des packets et installation d'un serveur WEB :
#!/bin/bash
apt-get update
apt-get upgrade -y
apt-get install -y apache2 php5
Ce script peut augmenter le temps de création de l'instance.
Il est aussi possible de lancer des scripts cloud-config lors de la création de votre instance, par exemple :
- Création d'un utilisateur avec 2 clés SSH :
#cloud-config
users:
- name: ovh
groups: sudo
shell: /bin/bash
sudo: ['ALL=(ALL) NOPASSWD:ALL']
ssh-authorized-keys:
- SSH_KEY1
- SSH_KEY2
Ce script permet donc de créer un utilisateur "ovh" ayant les droits sudo, avec la possibilité de se connecter avec 2 clés SSH différentes.
L'utilisateur "admin" ne sera pas créé, mais il sera remplacé par votre utilisateur.
Creation de l'instance
Après avoir récupéré la liste des images et des modèles d'instance, il est possible de lancer le script avec Cloud-init grâce à l'argument --user- data :
root@server:~# nova boot --key_name SSH_KEY --image bdcb5042-3548-40d0-b06f-79551d3b4377 --flavor 98c1e679-5f2c-4069-b4da-4a4f7179b758 --user-data ./adduser.sh Instance1
Après vérification, notre utilisateur est correctement ajouté après la création de l'instance avec les droits nécessaires :
root@server:~# ssh ovh@149.xxx.xxx.194
Last login: Tue Oct 20 07:51:58 2015 from proxy-109-190-254-35.ovh.net
ovh@instance1:~$ sudo su
root@instance1:/home/ovh#
Aller plus loin
Échangez avec notre communauté d'utilisateurs sur https://community.ovh.com/.
Cette documentation vous a-t-elle été utile ?
N’hésitez pas à nous proposer des suggestions d’amélioration afin de faire évoluer cette documentation.
Images, contenu, structure… N’hésitez pas à nous dire pourquoi afin de la faire évoluer ensemble !
Vos demandes d’assistance ne seront pas traitées par ce formulaire. Pour cela, utilisez le formulaire "Créer un ticket" .
Merci beaucoup pour votre aide ! Vos retours seront étudiés au plus vite par nos équipes..