Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
Partager sur:

7 tâches quotidiennes d'administrateur système à automatiser avec Ansible

administrateur système avec ansible
Scanner de sécurité des applications Web Invicti – la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

Ansible, un projet Python gratuit et open source de Red Hat, est une plate-forme populaire de gestion de configuration et d'automatisation informatique.

Il est multi-plateforme et peut fonctionner avec la plupart des systèmes d'exploitation modernes, y compris Linux, Windows et Mac. Il prend en charge un langage déclaratif écrit en YAML or YAML Ain't Markup Language pour décrire la configuration du système.

Ansible, avec d'autres plates-formes modernes de gestion de configuration, a révolutionné l'automatisation informatique et les normes de l'industrie. Les outils de gestion de configuration font désormais partie du DevOps outils et font partie intégrante de tout cycle de vie de processus informatique moderne. Cela s'applique à tout environnement d'infrastructure moderne, qu'il soit construit sur un environnement sur site, hybride ou cloud. Non seulement pour DevOps, mais Ansible peut également aider à automatiser de nombreuses tâches quotidiennes effectuées par un Administrateur système.

L'un des avantages d'utiliser Ansible c'est qu'il n'y a pas d'agent et qu'il n'a pas besoin de grand-chose pour démarrer en plus SSH accès à la machine cible et à la version prise en charge de Python, qui est déjà installé par défaut sur la plupart des systèmes d'exploitation modernes. De plus, comme il s'agit d'un outil léger, il peut être déployé et utilisé avec un héritage de systèmes innovants.

Utilisations d'Ansible

Orchestration

Ansible est un outil de choix pour orchestrer diverses tâches d'administration système et de déploiement. Les playbooks permettent d'utiliser la même orchestration workflows sur différents projets et YAML les données de configuration basées permettent de stocker et de versionner votre infrastructure sur le référentiel Git ou tout autre support pris en charge contrôle de version plate-forme.

Déploiement d'applications

Qu'il s'agisse d'une simple application de code de quelques lignes ou d'un déploiement lourd à plusieurs niveaux, Ansible permet d'automatiser le processus de bout en bout déploiement d'applications cycle de la vie.

Sécurité et conformité

Ansible peut également vous aider à garantir que vos systèmes sont sécurisés conformément aux directives de votre organisation et conformes aux normes de l'industrie. Il peut s'exécuter sur des milliers de serveurs, générer un audit et corriger ces failles de sécurité, donnant à l'administrateur un contrôle total sur l'environnement.

Examinons maintenant quelques-uns des points communs Administrateur système Tâches que vous pouvez automatiser avec Ansible.

Copy files from a local or remote system

En tant qu'administrateur système, il est courant de copier des fichiers d'un répertoire à un autre. Les fichiers de configuration doivent souvent être copiés sur des serveurs distants, ou parfois nous devons déplacer des fichiers d'un emplacement distant à un autre.

Ansible copy module peut vous aider à effectuer ces tâches dans un playbook.

C'est une tâche de routine pour un administrateur système de connaître l'état des serveurs gérés et d'effectuer des actions prédéfinies conformément aux politiques de l'organisation. Une de ces tâches consiste à connaître la disponibilité du serveur. Avec Ansible, nous pouvons facilement récupérer les valeurs de disponibilité et les imprimer ensemble. Un exemple à copier ntp configuration de local à un serveur distant en utilisant copy module est illustré ci-dessous :

---
- hosts: all
  gather_facts: no
  become: yes
  tasks:
    - name: Copy a new ntp configuration file and back up the original, if it differs
      copy:
        src: ./ntp.conf
        dest: /etc/ntp.conf
        owner: root
        group: root
        mode: '0644'
        backup: yes

Configure additional cron jobs

La configuration de tâches planifiées pour effectuer des tâches de routine fait partie de la gestion de tout serveur. Vous pouvez programmer sauvegardes automatiques, correctifs, audits, etc., à certaines heures de la journée ou du mois automatiquement et en laissant du temps productif pour votre utilisation.

cron est l'un de ces outils sous Linux qui prend en charge la planification, et Ansible peut vous aider à ajouter ou à modifier ces tâches. À titre d'exemple, le playbook ci-dessous montre comment vous pouvez définir un rsync travail en tant que root sur certains ou tous vos serveurs facilement à l'aide d'Ansible.

---
- hosts: all
  gather_facts: no
  become: yes
  tasks:
    - name: Deploy cron job
      cron:
        name: "Set rsync job"
        user: root
        minute: "5"
        hour: "4"
        job: "rsync -avz /path/to/folder1 /path/to/folder1 2>&1"

Manage disks and filesystems

Ansible peut être utilisé pour gérer les disques, dispositions de partition, les systèmes de fichiers et les montages, y compris /etc/fstab sur les serveurs Linux. Un module Ansible différent rend cela possible. Voici un exemple qui crée une partition sur un 100GB disque, formate-le avec ext4 le système de fichiers crée un nouveau répertoire pour monter la partition et la monte finalement sur un répertoire donné. Une entrée dans /etc/fstab est également créé par montage temporaire ou permanent selon les options du module.

---
- hosts: all
  gather_facts: no
  become: yes
  tasks:
    - name: Create a partition
      parted:
        device: /dev/sdb
        number: 1
        part_end: "100%"
        state: present
    - name: Format new partition
      filesystem:
        fstype: ext4
        dev: /dev/sdb1
    - name: Create mount directory
      file:
        path: /data
        state: directory
    - name: Mount partition
      mount:
        path: /data
        src: /dev/sdb1
        fstype: ext4
        state: mounted

Collect server logs

Conserver les journaux dans un endroit pratique est parfois essentiel pour la sécurité, l'audit et l'analyse. Ansible permet la collecte de journaux à partir de différents serveurs dans votre environnement d'entreprise et les conserve facilement dans votre emplacement défini. Voici le playbook pour y parvenir :

---
- hosts: all
  gather_facts: no
  become: yes
  tasks:
  
    - name: Find logs
      find:
        paths: /var/log/
        patterns: '*.log'
        recurse: yes
      register: _logs

    - name: Fetch logs
      fetch:
        src: "{{ item.path }}"
        dest: /tmp/logs
      with_items: "{{ _logs.files }}"

Install or remove packages and software

Les packages doivent souvent être installés à la demande des utilisateurs ou dans le cadre des versions initiales du serveur. Nous devrons peut-être également supprimer certains packages qui ne sont plus nécessaires ou qui présentent des bogues critiques, etc. Ansible vous permet d'installer ou de supprimer facilement des packages sans avoir à accéder à chaque serveur et à exécuter des commandes manuelles. Voici un exemple illustrant l'installation et la suppression d'un package chacun pour Ubuntu et serveurs Linux basés sur RHEL/CentOS.

---
- hosts: ubuntu
  gather_facts: no
  tasks:
    - name: Install lsof utility
      apt:
        pkg: lsof
        state: latest
      sudo: yes
    - name: Remove ARP Scan utility
      apt:
        pkg: arp-scan
        state: absent
      sudo: yes
      
 ---
- hosts: centos
  gather_facts: no
  tasks:
    - name: Install lsof utility
      yum:
        pkg: lsof
        state: latest
      sudo: yes
    - name: Remove ARP Scan utility
      yum:
        pkg: arp-scan
        state: absent
      sudo: yes

Managing users

Les utilisateurs et les groupes forment la structure de base autour de laquelle les systèmes basés sur Unix/Linux gèrent l'accès et les autorisations. Dans une grande organisation, la gestion des utilisateurs et des groupes peut être un grand défi malgré l'automatisation pour prendre en charge l'environnement.

Avec Ansible, l'administrateur système dispose d'un excellent outil pour créer, modifier et supprimer des utilisateurs et des groupes avec toutes les différentes possibilités prises en charge dans le système d'exploitation.

Voici un exemple simple qui montre la création et la suppression d'utilisateurs et de groupes à l'aide d'Ansible. Après l'exécution de ce playbook, les serveurs cibles auront groupA et groupB créé avec des GID donnés pendant que user1 sera supprimé, s'il est présent. Un nouvel utilisateur sans shell sera créé en tant que user2 avec l'UID donné, les groupes attribués et le mot de passe verrouillé.

---
- hosts: all
  gather_facts: no
  become: yes
  tasks:
    - group:
        gid: 12310
        name: groupA
        state: present
    - group:
        gid: 12311
        name: groupB
        state: present
    - user:
        name: user1
        state: absent
    - user:
        name: user2
        uid: 12427
        shell: /bin/false
        password_lock: yes
        groups: groupA, groupB

Managing services

Les services sont des démons de processus qui s'exécutent en arrière-plan et servent certains services comme sshd aportando SSH connectivité, etc. À l'aide d'Ansible, vous pouvez gérer les services système et utilisateur, comme les démarrer, les arrêter et les redémarrer. Voici un exemple de playbook pour le démontrer :

---
- hosts: all
  gather_facts: no
  become: yes
  tasks:
    - name: Restart ssh daemon
      service:
        name: ssh
        state: restarted
    - name: Restart sssd daemon
      service:
        name: sssd
        state: stopped
    - name: Restart httpd daemon
      service:
        name: httpd
        state: started

Dans l'exemple ci-dessus, le service SSH sera redémarré lors de l'arrêt suivant du service SSSD. Les httpd démon est lancé vers la fin. Comme Ansible est idempotent, tout service déjà démarré ou arrêté ne sera pas modifié tandis que le redémarrage change toujours l'état du service. N'oubliez pas de vérifier le nom du service car différentes distributions Linux utilisent d'autres noms même pour le même service comme ssh et sshd.

Résumé 👨‍💻

Ansible facilite la vie d'un administrateur système en vous permettant d'exécuter des tâches répétitives et chronophages de manière automatisée et en réduisant les erreurs et les efforts humains. De plus, il permettra le stockage des données de configuration dans un référentiel de code central comme Git, permettant à plusieurs utilisateurs de collaborer et d'examiner chaque activité.

Pour en savoir plus sur Ansible et son vaste ensemble de modules, reportez-vous à son Documentation.

Merci à nos commanditaires
Plus de bonnes lectures sur DevOps
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.
    Essayez Brightdata
  • Semrush est une solution de marketing numérique tout-en-un avec plus de 50 outils de référencement, de médias sociaux et de marketing de contenu.
    Essayez Semrush
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.
    Essayez Intruder