Accueil  > Ansible  >  ConfigPoste

Description

Installation et configuration de tous les packages utiles pour mes postes Linux (Debian, Kali et Fedora) via un script Bash exécutant un playbook Ansible.

Personnalisation des thêmes et de la session utilisateur.

 

Démarrage

Chargement des différents Playbooks

- hosts: all
  become: true
  vars_files:
    - vars/main.yml
    - vars/vscode.yml

  roles:
    - base
    - dev
    - ops
    - fw

 

Installation des Packages de base

Les packages de base :

# Installation des Packages de base

- name: Installation des paquets de base DEBIAN
  apt:
    name: "{{item.name}}"
    state: present
  with_items:
    - { name: "zsh" }
    - { name: "git" }
    - { name: "ansible" }
    - { name: "acl" }
    - { name: "apt-transport-https" }
    - { name: "software-properties-common" }
    - { name: "htop" }
    - { name: "iftop" }
    - { name: "bpytop" }
    - { name: "bc" }
    - { name: "build-essential" }
    - { name: "ca-certificates" }
    - { name: "curl" }
    - { name: "dirmngr" }
    - { name: "exfat-fuse" }
    - { name: "gnupg2" }
    - { name: "libavcodec-extra" }
    - { name: "lsb-release" }
    - { name: "libffi-dev" }
    - { name: "libssl-dev" }
    - { name: "libkrb5-dev" }
    - { name: "krb5-user" }
    - { name: "python3-pip" }
    - { name: "python3-dev" }
    - { name: "python3-setuptools" }
    - { name: "python3-wheel" }
    - { name: "python3-psutil" }
    - { name: "thunderbird" }
    - { name: "chromium" }
    - { name: "gimp" }
    - { name: "gparted" }
    - { name: "iotop" }
    - { name: "atop" }
    - { name: "keepassxc" }
    - { name: "net-tools" }
    - { name: "remmina" }
    - { name: "remmina-plugin-rdp" }
    - { name: "remmina-plugin-secret" }
    - { name: "vlc" }
    - { name: "conky" }
    - { name: "filezilla" }
    - { name: "gparted" }
    - { name: "firefox-esr-l10n-fr" }
    - { name: "thunderbird-l10n-fr" }
    - { name: "chromium-l10n" }
    - { name: "fonts-opensymbol" }
    - { name: "fonts-crosextra-carlito" }
    - { name: "fonts-powerline" }
  when: ansible_os_family == "Debian"

# Installation des Packages de base
- name: Installation des paquets de base RedHat
  yum:
    name: "{{item.name}}"
    state: present
  with_items:
    - { name: "gnome-tweaks" }
    - { name: "zsh" }
    - { name: "git" }
    - { name: "ansible" }
    - { name: "apt-transport-https" }
    - { name: "htop" }
    - { name: "iftop" }
    - { name: "bpytop" }
    - { name: "bc" }
    - { name: "ca-certificates" }
    - { name: "curl" }
    - { name: "dirmngr" }
    - { name: "gnupg2" }
    - { name: "python3-pip" }
    - { name: "python3-setuptools" }
    - { name: "python3-wheel" }
    - { name: "python3-psutil" }
    - { name: "thunderbird" }
    - { name: "chromium" }
    - { name: "gimp" }
    - { name: "gparted" }
    - { name: "iotop" }
    - { name: "atop" }
    - { name: "keepassxc" }
    - { name: "net-tools" }
    - { name: "remmina" }
    - { name: "conky" }
    - { name: "filezilla" }
    - { name: "gparted" }
  when: ansible_os_family == "RedHat"

# Configuration des themes, icones
- name: Fichier des icones
  unarchive:
    src: "icons.tar.gz"
    dest: "/usr/share/"
  when: ansible_os_family == "RedHat"

- name: Fichier des themes
  unarchive:
    src: "themes.tar.gz"
    dest: "/usr/share/"
  when: ansible_os_family == "RedHat"

- name: Fichier zshrc Root
  copy:
    src: "zshrc"
    dest: "/root/.zshrc"
    owner: "root"
    group: "root"

- name: Fichier bashrc Root
  copy:
    src: "bashrc"
    dest: "/root/.bashrc"
    owner: "root"
    group: "root"

# Copie et création de la tache Cron pour MAJ auto
# - name: script de lancement de ansible
#   template:
#     src: Mirim.sh.j2
#     dest: /usr/bin/Mirim.sh
#     owner: root
#     group: root
#     mode: 0755

# - cron:
#     name: lancement de ansible-pull le matin
#     weekday: "*"
#     minute: "0"
#     hour: "20"
#     user: root
#     job: "/bin/bash /usr/bin/Mirim.sh"

- name: Rotation de log sur ansible.log
  copy:
    src: logrotate_ansible
    dest: /etc/logrotate.d/ansible
  when: ansible_os_family == "Debian"

# Personnalisation de la session
- name: Copie du fichier WallPaper
  copy:
    src: michael.png
    dest: /usr/share/backgrounds/michael.png
    owner: root
    group: root
# Personnalisation de la session
- name: Copie du fichier WallPaper
  copy:
    src: tourist.png
    dest: /usr/share/backgrounds/tourist.png
    owner: root
    group: root

- name: Install Teamviewver
  yum:
    name: http://download.teamviewer.com/download/linux/teamviewer.x86_64.rpm
    state: present
    disable_gpg_check: yes
    validate_certs: no
    skip_broken: yes
  when: ansible_os_family == "RedHat"

- name: Install OnblyOffice
  yum:
    name: https://download.onlyoffice.com/install/desktop/editors/linux/onlyoffice-desktopeditors.x86_64.rpm
    state: present
    disable_gpg_check: yes
    validate_certs: no
    skip_broken: yes
  when: ansible_os_family == "RedHat"

- name: Install OnblyOffice
  yum:
    name: https://launchpad.net/veracrypt/trunk/1.25.9/+download/veracrypt-1.25.9-CentOS-8-x86_64.rpm
    state: present
    disable_gpg_check: yes
    validate_certs: no
    skip_broken: yes
  when: ansible_os_family == "RedHat"

- name: Git Clone PowerLine
  git:
    repo: https://github.com/b-ryan/powerline-shell.git
    dest: /root/powerline
    # single_branch: yes
    version: master

- name: Installation Powerline
  ansible.builtin.script: /root/powerline/setup.py install
  args:
    executable: python3
    chdir: /root/powerline

- name: Script Utilisateur michael
  import_tasks: user.yml
  vars:
    utilisateur: "michael"
    shell: "bash"
- name: Script Utilisateur tourist
  import_tasks: user.yml
  vars:
    utilisateur: "tourist"
    shell: "zsh"
  when: ansible_os_family == "Debian"
- name: Script Utilisateur tourist
  import_tasks: user.yml
  vars:
    utilisateur: "tron"
    shell: "zsh"
  when: ansible_os_family == "Debian"

 

 

Création des utilisateurs

Fichiers Utilisateurs

# Création du Compte {{ utilisateur }}
- name: Creation du Compte Utilisateur {{ utilisateur }}
  user:
    name: "{{ utilisateur }}"
    password: "{{ password }}"
    groups: # Empty by default, here we give it some groups
      - audio
      - dialout
    state: present
    shell: /bin/{{ shell }}
    system: no # Defaults to no
    createhome: yes # Defaults to yes
    home: /home/{{ utilisateur }} # Defaults to /home/<username>
    generate_ssh_key: yes
    ssh_key_bits: 4096
    ssh_key_file: .ssh/id_rsa

- name: Autorisation de  '{{ utilisateur }}'  pour Sudo sans mot de passe
  lineinfile:
    dest: /etc/sudoers
    state: present
    regexp: "^{{ utilisateur }}"
    line: "{{ utilisateur }} ALL=(ALL) NOPASSWD: ALL"
    validate: "visudo -cf %s"

# Icone de l'utilisateur {{ utilisateur }}
- name: Verification de l'icon de {{ utilisateur }}
  stat:
    path: /var/lib/AccountsService/icons/{{ utilisateur }}
  register: profile_picture

- name: Téléchargement de l'icone
  become: true
  get_url:
    url: https://michael.mirim.fr/wp-content/uploads/2023/09/{{ utilisateur }}.png
    dest: /var/lib/AccountsService/icons/{{ utilisateur }}
    force: true
  #when: profile_picture.stat.checksum != 'd402e1effc8030039576856525b378743c53664b'

- name: Copie du fichier {{ utilisateur }}
  copy:
    src: utilisateur
    dest: /var/lib/AccountsService/users/{{ utilisateur }}

- name: mise à jour de l'icone du profil
  become: true
  lineinfile:
    path: /var/lib/AccountsService/users/{{ utilisateur }}
    regexp: "^Icon="
    line: "Icon=/var/lib/AccountsService/icons/{{ utilisateur }}"

# Copie des Fichiers configuration Git et Bash
- name: Fichier de configuration git
  copy:
    src: "gitconfig"
    dest: "/home/{{ utilisateur }}/.gitconfig"
    owner: "{{ utilisateur }}"
    group: "{{ utilisateur }}"

- name: Fichier zshrc
  copy:
    src: "zshrc"
    dest: "/home/{{ utilisateur }}/.zshrc"
    owner: "{{ utilisateur }}"
    group: "{{ utilisateur }}"

- name: Fichier bashrc
  copy:
    src: "bashrc"
    dest: "/home/{{ utilisateur }}/.bashrc"
    owner: "{{ utilisateur }}"
    group: "{{ utilisateur }}"

- name: Création du répertoire .ssh
  ignore_errors: yes
  file:
    path: /home/{{ utilisateur }}/.ssh
    state: directory
    owner: "{{ utilisateur }}"
    group: "{{ utilisateur }}"
    mode: "0700"
    recurse: yes
- name: Fichier de configuration ssh
  copy:
    src: "config"
    dest: "/home/{{ utilisateur }}/.ssh/config"
    owner: "{{ utilisateur }}"
    group: "{{ utilisateur }}"

- name: set wallpaper {{ utilisateur }}
  become_user: "{{ utilisateur }}"
  dconf:
    key: "/org/gnome/desktop/background/picture-uri"
    value: "'file:///usr/share/backgrounds/{{ utilisateur }}.png'"
  ignore_errors: yes

- name: set Theme
  become_user: "{{ utilisateur }}"
  dconf:
    key: "/org/gnome/desktop/interface/gtk-theme"
    value: "'Kali-Light'"

- name: set Theme Icon
  become_user: "{{ utilisateur }}"
  dconf:
    key: "/org/gnome/desktop/interface/icon-theme"
    value: "'Flat-Remix-Blue-Light'"

- name: set wallpaper position
  become_user: "{{ utilisateur }}"
  dconf:
    key: "/org/gnome/desktop/background/picture-options"
    value: "'zoom'"

- name: set Theme shell
  become_user: "{{ utilisateur }}"
  dconf:
    key: "/org/gnome/shell/extensions/user-theme/name"
    value: "'Kali-Light'"

# Configuration du Terminal
- name: Terminal cache menubar
  become_user: "{{ utilisateur }}"
  dconf:
    key: "/org/gnome/terminal/legacy/default-show-menubar"
    value: "false"

- name: Terminal cache scrollbar
  become_user: "{{ utilisateur }}"
  dconf:
    key: "/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/scrollbar-policy"
    value: "'never'"

- name: Terminal theme-colors
  become_user: "{{ utilisateur }}"
  dconf:
    key: "/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/use-theme-colors"
    value: "true"

- name: Terminal background-transparency-percent
  become_user: "{{ utilisateur }}"
  dconf:
    key: "/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/background-transparency-percent"
    value: 5

- name: Terminal background-transparency-percent
  become_user: "{{ utilisateur }}"
  dconf:
    key: "/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/use-system-font"
    value: "true"

- name: Terminal default-size-columns
  become_user: "{{ utilisateur }}"
  dconf:
    key: "/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/default-size-columns"
    value: "123"

- name: Terminal font
  become_user: "{{ utilisateur }}"
  dconf:
    key: "/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/font"
    value: "'Monospace 9'"

- name: Terminal cursor-shape
  become_user: "{{ utilisateur }}"
  dconf:
    key: "/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/cursor-shape"
    value: "'underline'"

- name: Terminal Profil Name
  become_user: "{{ utilisateur }}"
  dconf:
    key: "/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/visible-name"
    value: "'Mirim'"

- name: Terminal bgcolor
  become_user: "{{ utilisateur }}"
  dconf:
    key: "/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/background-color"
    value: "'rgb(0,43,54)'"

- name: Terminal fgcolor
  become_user: "{{ utilisateur }}"
  dconf:
    key: "/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/foreground-color"
    value: "'rgb(131,148,150)'"

- name: Ajout des icones du menu DEBIAN {{ utilisateur }}
  become_user: "{{ utilisateur }}"
  dconf:
    key: "/org/gnome/shell/favorite-apps"
    value: "['org.gnome.Terminal.desktop', 'org.gnome.Nautilus.desktop', 'keepassxc.desktop']"
#    value: "['org.gnome.Terminal.desktop', 'org.gnome.Nautilus.desktop', 'keepassxc.desktop', 'chromium.desktop', 'firefox-esr.desktop', 'thunderbird.desktop', 'filezilla.desktop', 'kali-msfconsole.desktop', 'wireshark.desktop', 'kali-burpsuite.desktop', 'cherrytree.desktop']"
- name: Refresh font list
  shell: fc-cache -fv
  tags:
    - fonts
  when: ansible_os_family == "Debian"

- name: Ajout des icones du menu REDHAT
  become_user: "{{ utilisateur }}"
  dconf:
    key: "/org/gnome/shell/favorite-apps"
    value: "['org.gnome.Terminal.desktop', 'org.gnome.Nautilus.desktop', 'mozilla-thunderbird.desktop', 'firefox.desktop', 'chromium-browser.desktop', 'org.gnome.gedit.desktop', 'chromium.desktop', 'code.desktop', 'filezilla.desktop', 'org.keepassxc.KeePassXC.desktop']"
- name: Refresh font list
  shell: fc-cache -fv
  tags:
    - fonts
  when: ansible_os_family == "RedHat"

 

Installation de vsCode

Fichier :

- name: Add Apt-Keys
  apt_key:
    url: "{{item.name}}"
    state: present
  with_items:
    - { name: "https://packages.microsoft.com/keys/microsoft.asc" }
    - { name: "https://packages.sury.org/php/apt.gpg" }
  when: ansible_os_family == "Debian"

- name: Add Repos
  apt_repository:
    repo: "{{item.name}}"
    filename: "{{item.filename}}"
    state: present
  with_items:
    - {
        name: "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main",
        filename: "vscode",
      }
    - {
        name: "deb [arch=amd64] https://packages.sury.org/php/ {{ debian_version }} main",
        filename: "sury",
      }
  when: ansible_os_family == "Debian"

 

Installation des outils de développement

Fichier 

# - name: Attente PHP
#   pause:
#     minutes: 2

- name: Add Apt-Keys
  apt_key:
    url: "{{item.name}}"
    state: present
  with_items:
    - { name: "https://packages.microsoft.com/keys/microsoft.asc" }
    - { name: "https://packages.sury.org/php/apt.gpg" }
  when: ansible_os_family == "Debian"

- name: Add Repos
  apt_repository:
    repo: "{{item.name}}"
    filename: "{{item.filename}}"
    state: present
  with_items:
    - {
        name: "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main",
        filename: "vscode",
      }
    - {
        name: "deb [arch=amd64] https://packages.sury.org/php/ {{ debian_version }} main",
        filename: "sury",
      }
  when: ansible_os_family == "Debian"

- name: Import remi GPG key.
  rpm_key:
    key: "{{ remi_repo_gpg_key_url }}"
    state: present
  when: ansible_os_family == "RedHat"

- name: Install remi repo.
  yum:
    name: "{{ remi_repo_url }}"
    state: present
    disable_gpg_check: yes
    validate_certs: no
    skip_broken: yes
  when: ansible_os_family == "RedHat"

- name: enable remi-php
  ini_file:
    dest: /etc/yum.repos.d/remi.repo
    section: remi
    option: enabled
    value: 1
  when: ansible_os_family == "RedHat"

- name: Import vscode key
  rpm_key:
    state: present
    key: https://packages.microsoft.com/keys/microsoft.asc
  when: ansible_os_family == "RedHat"

- name: Add repository
  yum_repository:
    name: epel
    description: EPEL YUM repo
    baseurl: https://packages.microsoft.com/yumrepos/vscode/
  when: ansible_os_family == "RedHat"

# Installation des Packages de base
- name: Installation des paquets de base
  apt:
    name: "{{item.name}}"
    state: present
  with_items:
    - { name: 'php' }
    - { name: 'php-fpm' }
    - { name: 'php-mysql' }
    - { name: 'php-gd' }
    - { name: 'php-zip' }
    - { name: 'php-xml' }
    - { name: 'php-mbstring' }
    - { name: 'php-xdebug' }
    - { name: 'php-apcu' }
    - { name: "phpmyadmin" }
    - { name: "npm" }
    - { name: "nodejs" }
  when: ansible_os_family == "Debian"

# Installation des Packages de base
- name: Installation des paquets de base
  yum:
    name: "{{item.name}}"
    state: present
  with_items:
    - { name: "composer" }
    - { name: "httpd" }
    - { name: "php74-php" }
    - { name: "php74-php-fpm" }
    - { name: "php74-php-mysql" }
    - { name: "php74-php-gd" }
    - { name: "php74-php-zip" }
    - { name: "php74-php-xml" }
    - { name: "php74-php-mbstring" }
    - { name: "php74-php-xdebug" }
    - { name: "php74-php-apcu" }
    - { name: "php80-php" }
    - { name: "php80-php-fpm" }
    - { name: "php80-php-mysql" }
    - { name: "php80-php-gd" }
    - { name: "php80-php-zip" }
    - { name: "php80-php-xml" }
    - { name: "php80-php-mbstring" }
    - { name: "php80-php-xdebug" }
    - { name: "php80-php-apcu" }
    - { name: "php81-php" }
    - { name: "php81-php-fpm" }
    - { name: "php81-php-mysql" }
    - { name: "php81-php-gd" }
    - { name: "php81-php-zip" }
    - { name: "php81-php-xml" }
    - { name: "php81-php-mbstring" }
    - { name: "php81-php-xdebug" }
    - { name: "php81-php-apcu" }
    - { name: "php82-php" }
    - { name: "php82-php-fpm" }
    - { name: "php82-php-mysqlnd" }
    - { name: "php82-php-gd" }
    - { name: "php82-php-zip" }
    - { name: "php82-php-xml" }
    - { name: "php82-php-mbstring" }
    - { name: "php82-php-xdebug" }
    - { name: "php82-php-apcu" }
    - { name: "phpmyadmin" }
    - { name: "npm" }
    - { name: "nodejs" }
  when: ansible_os_family == "RedHat"

- name: Create Symbolic link
  file:
    src: /usr/share/phpmyadmin/
    dest: /var/www/html/phpmyadmin
    state: link
  ignore_errors: yes
  when: ansible_os_family == "Debian"

- name: Create Symbolic link
  file:
    src: /usr/share/phpMyAdmin/
    dest: /var/www/html/phpmyadmin
    state: link
  when: ansible_os_family == "RedHat"

- name: Give writable mode to http folder
  ignore_errors: yes
  file:
    path: /var/www/html
    state: directory
    mode: "0755"
    owner: www-data
    group: www-data
    recurse: yes
  when: ansible_os_family == "Debian"

- name: Give writable mode to http folder
  ignore_errors: yes
  file:
    path: /var/www/html
    state: directory
    mode: "0755"
    owner: apache
    group: apache
    recurse: yes
  when: ansible_os_family == "RedHat"

- name: ensure apache service is start
  service:
    name: apache2
    state: started
    enabled: yes
  when: ansible_os_family == "Debian"

- name: install mysql
  apt:
    name:
      - mariadb-server
      - python3-mysqldb # for mysql_db and mysql_user modules
    state: present
    update_cache: yes
  when: ansible_os_family == "Debian"

- name: ensure apache service is start
  service:
    name: httpd
    state: started
    enabled: yes
  when: ansible_os_family == "RedHat"

- name: install mysql
  yum:
    name:
      - mariadb-server
      - python3-mysqlclient
    state: present
    update_cache: yes
  when: ansible_os_family == "RedHat"

- name: Create MySQL client config
  copy:
    dest: "/root/.my.cnf"
    content: |
      [client]
      user=root
      password="{{ mysql_password }}"
    mode: 0400

- name: Allow external MySQL connexions (1/2)
  lineinfile:
    path: /etc/mysql/mariadb.conf.d/50-server.cnf
    regexp: "^skip-external-locking"
    line: "# skip-external-locking"
  notify: Restart mariadb
  when: ansible_os_family == "Debian"

- name: Allow external MySQL connexions (2/2)
  lineinfile:
    path: /etc/mysql/mariadb.conf.d/50-server.cnf
    regexp: "^bind-address"
    line: "# bind-address"
  notify: Restart mariadb
  when: ansible_os_family == "Debian"

- name: ensure mariadb service is start
  service:
    name: mariadb
    state: started
    enabled: yes

- name: "Create {{ mysql_user }} with all privileges"
  mysql_user:
    name: "{{ mysql_user }}"
    password: "{{ mysql_password }}"
    priv: "*.*:ALL"
    #host: "{{ webserver_host }}"
    state: present
    login_user: root
    login_password: "{{ root_password }}"
    login_unix_socket: /var/run/mysqld/mysqld.sock
  notify: Restart mariadb
  ignore_errors: yes
  when: ansible_os_family == "Debian"

- name: Download postman
  unarchive:
    src: https://dl.pstmn.io/download/latest/linux64
    dest: /opt
    creates: /opt/Postman
    remote_src: yes

- name: Create postman symlink
  file:
    src: /opt/Postman/Postman
    dest: /usr/bin/postman
    state: link

- name: Installation Symfony
  shell:  /usr/bin/wget https://get.symfony.com/cli/installer -O - | bash
  # shell: /usr/bin/curl -sL https://get.symfony.com/cli/installer | bash -
  # shell: /usr/bin/curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.rpm.sh' | sudo -E bash
  when: ansible_os_family == "RedHat"
  # warn: false

- name: Installation Symfony
  # shell:  /usr/bin/wget https://get.symfony.com/cli/installer -O - | bash
  shell: /usr/bin/curl -sL https://get.symfony.com/cli/installer | bash -
  # shell: /usr/bin/curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.rpm.sh' | sudo -E bash
  when: ansible_os_family == "Debian"
  # warn: false

# Installation des Packages de base
- name: Installation des paquets de base
  yum:
    name: "{{item.name}}"
    state: present
  with_items:
    - { name: "symfony-cli" }
  when: ansible_os_family == "RedHat"

- name: copy symfony exec
  copy:
    src: /root/.symfony5/bin/symfony
    dest: /usr/local/bin/symfony
    mode: 0755
  when: ansible_os_family == "Debian"

- name: Install packages
  package:
    name: "{{item.name}}"
    state: present
  with_items:
    - { name: "code" }

- name: Script Utilisateur michael
  import_tasks: user.yml
  vars:
    utilisateur: "michael"
    shell: "bash"
- name: Script Utilisateur tourist
  import_tasks: user.yml
  vars:
    utilisateur: "tourist"
    shell: "zsh"
  when: ansible_os_family == "Debian"
- name: Script Utilisateur tourist
  import_tasks: user.yml
  vars:
    utilisateur: "tron"
    shell: "zsh"
  when: ansible_os_family == "Debian"

 

Installation des Outils OPS

Fichier :

# Installation des Packages de base
- name: Install OPS paquets
  apt:
    name: '{{item.name}}'
    state: present
  with_items:
    - { name: 'minicom' }
    - { name: 'tftpd-hpa' }
  when: ansible_os_family == "Debian"

# Installation des Packages de base
- name: Install OPS paquets
  yum:
    name: '{{item.name}}'
    state: present
  with_items:
    - { name: 'minicom' }
    - { name: 'tftp-server' }
  when: ansible_os_family == "RedHat"

- name: Fichier Minicom
  copy:
    src: "minirc.dfl"
    dest: "/etc/minicom/minirc.dfl"
    owner: "root"
    group: "root"
  when: ansible_os_family == "Debian"

- name: Fichier Minicom
  copy:
    src: "minirc.dfl"
    dest: "/etc/minirc.dfl"
    owner: "root"
    group: "root"
  when: ansible_os_family == "RedHat"

- name: Création du répertoire TFTP
  file:
    path: /tftpboot
    state: directory
    owner: nobody
    group: nogroup
    mode: "0777"
    recurse: yes
  when: ansible_os_family == "Debian"

- name: Création du répertoire TFTP
  file:
    path: /tftpboot
    state: directory
    owner: nobody
    group: nobody
    mode: "0777"
    recurse: yes
  when: ansible_os_family == "RedHat"

 

Script Bash

 


#!/bin/bash
### VARIABLES ###
ANSIBLE_PATH="/etc/ansible";
TMP_PATH="/tmp/MirimAnsible";
### SCRIPT ###
if [ -f /usr/bin/dnf ]; then
/usr/bin/dnf install -y ansible git
fi
if [ -f /usr/bin/apt ]; then
/usr/bin/apt install -y ansible git
fi
if [ ! -d $ANSIBLE_PATH ];then
echo "Création du $ANSIBLE_PATH !";
/usr/bin/mkdir $ANSIBLE_PATH;
fi
if [ ! -d $TMP_PATH ];then
echo "Création du $TMP_PATH !";
/usr/bin/mkdir $TMP_PATH;
fi
/usr/bin/echo '['${HOSTNAME:0:10}']' > $TMP_PATH/hosts
/usr/bin/echo $HOSTNAME >> $TMP_PATH/hosts
/usr/bin/sudo /usr/bin/cp $TMP_PATH/hosts /etc/ansible/
/usr/bin/chmod 777 $ANSIBLE_PATH/hosts
# Si l'application python apt nest pas installé
/bin/cd $TMP_PATH
# Lancement de la commande de lancement d'Ansible.
ansible-pull --sleep 10 --checkout=main --directory=$TMP_PATH/ansible --url=https://user:password@git.mirim.fr/xxx/ConfigPoste.git main.yml
/usr/bin/rm -Rf $TMP_PATH $TMP_PATH/ansible

 

Variables

Fichier de variables

password: "password"
mysql_user: "mysql_user"
mysql_password: "password"
mysql_dbname: "dbname"
root_password: "password"
debian_version: "bookworm"
remi_repo_url: "https://rpms.remirepo.net/fedora/remi-release-{{ ansible_distribution_major_version }}.rpm"
remi_repo_gpg_key_url: "https://rpms.remirepo.net/RPM-GPG-KEY-remi2022"

 

Publié le
Modifié le