Problème rencontré aujourd'hui sur RedHat 7.3 : le module ansible filesystem qui renvoie l'erreur suivante :
stderr=mount: wrong fs type, bad option, bad superblock on /dev/mapper/some_vg-some_lv
Et dans /var/log/message
, j'ai l'info suivante :
Apr 30 16:08:37 server_name kernel: XFS (dm-13): Invalid superblock magic number
Ca ressemble à un problème de montage de partition.
Et en cherchant avec @Philou, j'ai exécuté la commande suivante :
xfs_repair -L /dev/some_vg/some_lv
Ce qui a résolu le problème (il faudra que je regarde un peu plus en détails ce qui se passe :p)
Je découvre donc cette commande qui fait partie d'un lot de commandes utilitaires liées à XFS, et que je vais garder sous le coude.
Soit le fichier mon_fichier suivant :
$ cat mon_fichier
Bonjour
{{ MOTiF }}
MOTiF
Au revoir
Soit la variable VALEUR (définie quelquepart dans ansible) valant framboise.
Alors, pour remplacer la chaîne MOTiF par le contenu de la variable VALEUR, je peux utiliser le module Ansible suivant :
- name: 'Replace values in file'
replace:
path: '{{ MY_PATH }}/mon_fichier'
regexp: '{{ item.mask }}'
replace: "{{ item.value }}"
with_items:
- { mask : "^(.*)MOTiF(.*)$", value : '\1{{ VALEUR }}\2'}
Le fichier mon_fichier devient alors :
$ cat mon_fichier
Bonjour
{{ framboise }}
framboise
Au revoir
Et si la chaîne à remplacer contient des accolades, et vaut par exemple {{ MOTiF }}, il faut échapper celles-ci :
- name: 'Replace values in file'
replace:
path: '{{ MY_PATH }}/mon_fichier'
regexp: '{{ item.mask }}'
replace: "{{ item.value }}"
with_items:
- { mask : "^(.*)\\{\\{ MOTiF \\}\\}(.*)$", value : '\1{{ VALEUR }}\2'}
Le fichier mon_fichier devient cette fois :
$ cat mon_fichier
Bonjour
framboise
MOTiF
Au revoir
Lorsqu'on ajoute des dépôts à une Debian via Ansible, la mise à jour des répo semble ne pas fonctionner avec l'option update_cache: yes du module apt.
A la place, il faut insérer un module apt dont le seul rôle est de mettre à jour les répo, puis utiliser un autre module apt pour faire l'installation.
Exemple :
- name: "Adds backports to apt sources (Debian 8 Jessie)."
copy:
content: "deb http://ftp.debian.org/debian jessie-backports main"
dest: "/etc/apt/sources.list.d/backports_jessie.list"
when: ansible_distribution == "Debian" and ansible_distribution_major_version == '8'
- name: "Update repositories cache"
apt:
update_cache: yes
- name : 'Installs certbot (Debian 8 Jessie).'
apt :
update_cache : no
name : 'certbot'
state : 'present'
default_release: 'jessie-backports'
when: ansible_distribution == "Debian" and ansible_distribution_major_version == '8'