Kubespray est une suite de playbook ansible pour déployer un cluster kubernetes.
Le plus simple est de passer par un virtualenv python pour installer Ansible et les outils nécessaires.
Pour la création du virtualenv :
virtualenv kubespray-virtualenv
On travaille ensuite dans ce virtualenv :
cd kubespray-virtualenv source bin/activate
On récupère kubespray :
git clone https://github.com/kubernetes-sigs/kubespray.git
On se place dans le répertoire kubespray et on installe les dépendances :
cd kubespray pip install -r requirements.txt
Un autre prérequis nécessaire est python3-netaddr. Comme il est souvent nécessaire à Ansible je préfère l'installer côté systeme via dnf. Sinon pip install netaddr devrait faire le boulot.
L'inventaire de nos machines à configurer pour le cluster kubernetes va être généré dynamiquement. Pour cela il faut définir la variable IPS contenant leurs IP :
declare -a IPS=(192.168.2.57 192.168.2.69 192.168.2.90)
Pour générer l'inventaire :
CONFIG_FILE=inventory/mycluster/hosts.ini python3 contrib/inventory_builder/inventory.py ${IPS[@]}\n
J'ai du préciser dans le ansible.cfg que le remote_user était root.
Pour lancer le playbook :
ansible-playbook -i inventory/mycluster/hosts.ini --become --become-user=root cluster.yml
Voilà.