diff --git a/20220110091205-ocf_resource_agent.org b/20220110091205-ocf_resource_agent.org new file mode 100644 index 0000000..6e8fd9f --- /dev/null +++ b/20220110091205-ocf_resource_agent.org @@ -0,0 +1,36 @@ +:PROPERTIES: +:ID: 7a81bb2d-a6cf-4a2d-8308-0de97fab1856 +:mtime: 20220111174057 +:ctime: 20220110091205 +:END: +#+title: OCF resource agent +#+filetags: :Pacemaker:Cluster: + +* Présentation + * /Open Cluster Framework resource agent/ est un exécutable permettant de controller une ressource d'un cluster, + * Une resource = tout ce qui peut être géré par un cluster (IP, FS, BDD ou une VM par exemple), + * Un /OCF resource agent/ peut être utilisé par les applications de gestion de cluster /Pacemaker/ et /RGmanager/, + +* Implémentation + * Pas de language dédié (shell généralement), + * Règle de nommage: lower kebab case (a-ocf-agent-exemple). + +* Howto + * Installer ~resource-agents~ package: +#+BEGIN_SRC shell +apt-get install resource-agents +#+END_SRC + * Pour tester la conformité d'un ~resource-agent~ créé : +#+BEGIN_SRC shell +ocf-tester -n +#+END_SRC + + * A installer dans le répertoire ~/usr/lib/ocf/resource.d//~ du noeud concerné + * Pour créer une nouvelle ressource: +#+BEGIN_SRC shell +sudo pcs resource create [:[:]] +#+END_SRC + +* Références + * https://github.com/ClusterLabs/resource-agents/blob/main/doc/dev-guides/ra-dev-guide.asc + * https://dopensource.com/2017/04/27/creating-custom-ocf-resource-agents/ diff --git a/20220110094054-ocf_guest_node.org b/20220110094054-ocf_guest_node.org new file mode 100644 index 0000000..a805202 --- /dev/null +++ b/20220110094054-ocf_guest_node.org @@ -0,0 +1,43 @@ +:PROPERTIES: +:ID: 40a6cfb0-aec4-4caa-9e9f-2428e419d2c0 +:mtime: 20220111154319 +:ctime: 20220110094054 +:END: +#+title: OCF remote and guest node + +* Présentation +Un /Open Cluster Framework guest node/ est un noeud de cluster n'implémentant pas la stack du cluster. Cela a pour +conséquence qu'il ne contribue pas à la redondance (n'impacte pas le quorum, impossibilité de devenir /Designated Controller/) et ne pilote pas les [[id:7a81bb2d-a6cf-4a2d-8308-0de97fab1856][OCF resource agent]]. + +Un /Open Cluster Framework remote node/ est un /guest node/ hébergé sur une CPU/VM n'hébergeant pas de noeud du cluster. + +* Communication avec les /remote nodes/ du cluster et le /Designated Controller/ + * Est sécurisée (TLS/PSK + authentification), + * Bind du port TCP 3121 (par défaut), + * Les noeuds du cluster et celui exécutant le /pacemaker_remote/ doit partager la même clé privée (à placer dans le + répertoire /etc/pacemaker/authkey des noeuds. + +* Howto + * Installation de ~pacemaker_remote~ sur les noeuds pour lesquels un ou des ressources doivent être gérés par le cluster: +#+BEGIN_SRC shell +apt-get install --no-install-recommends --no-install-suggests pacemaker-remote resource-agents pcs +#+END_SRC + * La clé privée à partager avec les noeuds du cluster est générée lors de l'installation. L'écraser par celle des + noeuds du cluster (~/etc/pacemaker/authkey~). + * Authentification du noeud nouvellement créée: +#+BEGIN_SRC shell +pcs host auth -u hacluster -p +#+END_SRC + * Supprimer les précédentes et éventuelles configurations du noeud (en cas d'erreur ~cluster configuration files found, the host seems to be in a cluster already~): +#+BEGIN_SRC shell +systemctl stop pacemaker_remote.service +rm -f /var/lib/pacemaker/cib/cib.xml /etc/corosync/corosync.conf +#+END_SRC + * Ajout de la ressource nouvellement créée au cluster: +#+BEGIN_SRC shell + * pcs cluster node add-remote +#+END_SRC + +* Références + * https://clusterlabs.org/pacemaker/doc/deprecated/en-US/Pacemaker/1.1/html/Pacemaker_Remote/_guest_nodes.html + * https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/high_availability_add-on_reference/pacemaker_remote