Effacement d'un répertoire
- name: "Delete /var/log/nrpe/centplugins/"
ansible.builtin.file:
path: /var/log/nrpe/centplugins
state: absent
Lien vers le fichier : cliquez ici
Effacement d'une ligne dans un fichier
Ici on supprime une ligne qui contient "services = " dans /etc/sssd/sssd.conf
En bonus, si la ligne est effectivement supprimée, on relance le service associé
- name: "sssd.conf : on efface la ligne services = nss, pam"
lineinfile:
path: /etc/sssd/sssd.conf
regexp: '.*(services = ).*'
state: absent
backup: no
register: result
- name: "Restart service sssd if needed"
ansible.builtin.service:
name: sssd
state: restarted
when: result is changed
Lien vers le fichier : cliquez ici
Création du fichier /etc/sudoers.d/admins
- name: "Create file /etc/sudoers.d/admins"
ansible.builtin.file:
path: /etc/sudoers.d/admins
owner: root
group: root
mode: '0640'
state: touch
Lien vers le fichier : cliquez ici
Copie d'un fichier, ici atix_gpg.pub
- name: Copie clé pgp
ansible.builtin.copy:
src: vault/atix_gpg.pub
dest: /home/ansible/atix_gpg.pub
owner: ansible
group: users
Lien vers le fichier : cliquez ici
Création d'un fichier et écriture de son contenu
- name: Create file for DL centreon
copy:
dest: "/etc/yum.repos.d/centreon.repo"
content: |
[centreon-stable-noarch]
name=Centreon open source software repository.
baseurl=https://yum.centreon.com/standard/22.10/el8/stable/noarch/
enabled=1
gpgcheck=1
gpgkey=https://yum-gpg.centreon.com/RPM-GPG-KEY-CES
module_hotfixes=1
Lien vers le fichier : cliquez ici
Ecriture d'un block de lignes dans un fichier
ici /etc/ssh/sshd_config
- name: Create text block in a file
ansible.builtin.blockinfile:
path: /etc/ssh/sshd_config
marker: "# {mark} ANSIBLE monuser MANAGED BLOCK"
block: |
Match Group monuser
PasswordAuthentication no
PubKeyAuthentication yes
Lien vers le fichier : cliquez ici
Vérification de la présence du paramètre timeout=300 dans /etc/yum.conf
S'il existe on s'assure qu'il est réglé sur 300
S'il n'existe pas on crée la ligne
- name: "Dans /etc/yum.conf check présence timeout=300"
replace:
path: /etc/yum.conf
regexp: '(^(\s+)timeout=)(.*)$'
replace: 'timeout=300'
backup: no
- name: "Dans /etc/yum.conf création de la ligne timeout=300"
lineinfile:
path: /etc/yum.conf
line: 'timeout=300'
state: present
backup: no
Lien vers le fichier : cliquez ici
On regarde si le mot 'ansible' existe dans une ligne, si ce n'est pas le cas on l'ajoute.
En fait le premier bloc sert à faire un test de remplacement du mot 'ansible'.
On stock le résultat dans une variable.
Si cette variable a pour résultat 'changed', c'est que mon mot 'ansible' à ajouter existait déjà.
Donc on ne joue le bloc d'ajout que si 'changed' et faux.
- name: Check authorisation on sshd
replace:
path: /etc/ssh/sshd_config
regexp: '^\s*AllowGroups(\s+)(.*)ansible(.*)?$'
replace: 'test'
check_mode: yes
register: result
- name: Set authorisation on sshd add group
lineinfile:
path: /etc/ssh/sshd_config
backrefs: true
regexp: '^\s*AllowGroups\s+(.*?)(\s+a)*$'
line: 'AllowGroups \1 ansible'
when: result['changed'] == False
Lien vers le fichier : cliquez ici
Changer les droits et le propriétaire d'un répertoire
- name: "Change ownership on /var/log/nrpe/centplugins/"
ansible.builtin.file:
path: /var/log/nrpe/centplugins
owner: centreon-engine
group: centreon-engine
mode: '0755'
Lien vers le fichier : cliquez ici
Création d'un utilisateur et de son groupe
- name: Creation groupe monuser
ansible.builtin.group:
name: monuser
state: present
system: true
- name: Creation du compte monuser
ansible.builtin.user:
name: monuser
groups: monuser
shell: /bin/bash
system: false
group: monuser
state: present
Lien vers le fichier : cliquez ici
En option on peut coller une clé publique en autorisation/accès sur ce compte.
Ici la clé publique est copiée depuis
~/vault/id_rsa_monuser_proxy.pub
- name: Copy monuser authorized key
ansible.posix.authorized_key:
user: monuser
state: present
key: "{{ lookup('file', '~/vault/id_rsa_monuser_proxy.pub') }}"
Lien vers le fichier : cliquez ici
Activer un service
- name: "Enabled snmpd"
ansible.builtin.service:
name: snmpd
enabled: true
Lien vers le fichier : cliquez ici
A priori l'activation peut être buggée ( https://github.com/ansible/ansible/issues/72451 ), en contournement on peut faire
- name: Really enable snmpd
shell:
cmd: "systemctl enable snmpd.service"
Lien vers le fichier : cliquez ici
Désactiver un service
- name: "Disable snmpd"
ansible.builtin.service:
name: snmpd
enabled: false
Lien vers le fichier : cliquez ici
Relance d'un service, ici sshd
- name: "Restart service sshd"
ansible.builtin.service:
name: sshd
state: restarted
Lien vers le fichier : cliquez ici
Créer une variable dont une partie contient le nom de la machine traitée
---
- name: Ajout groupe à sudo
hosts: mesmachines
become: yes
become_method: sudo
tasks:
- name: Créer la variable
set_fact:
nom_groupe: "GRP_SSH_{{ inventory_hostname }}"
#Gestion de l'accès root
- name: "Create file /etc/sudoers.d/admins"
ansible.builtin.file:
path: /etc/sudoers.d/admins
owner: root
group: root
mode: '0640'
state: touch
- name: "Pour sudo ajout des droits du groupe AD {{ nom_groupe }}"
lineinfile:
path: /etc/sudoers.d/admins
line: "%{{ nom_groupe }} ALL=(ALL) ALL"
state: present
backup: no
Lien vers le fichier : cliquez ici
Import d'une clé pgp
- name: Import clé pgp
ansible.builtin.shell: apt-key add /home/ansible/atix_gpg.pub
Lien vers le fichier : cliquez ici
Installation d'un logiciel avec apt
- name: Install python3-subscription-manager
ansible.builtin.apt:
name: python3-subscription-manager
state: present
Lien vers le fichier : cliquez ici
Continuer même si une tâche échoue
- name: Install SentinelOne .rpm package
ansible.builtin.shell: rpm -vih /tmp/SentinelAgent_linux_x86_64_v23_2_2_4.rpm --nodigest --nofiledigest
args:
executable: /bin/bash
ignore_errors: True
Lien vers le fichier : cliquez ici
Exécuter une commande shell : exemple
- name: Launch sentinelone
ansible.builtin.shell: /opt/sentinelone/bin/sentinelctl control start
Lien vers le fichier : cliquez ici
Article(s) en relation(s)