Déploiement en masse
Cette rubrique donne une vue d'ensemble générale du déploiement en masse d'ESET Server Security for Linux via Puppet, Chef et Ansible. Les blocs de code ci-dessous ne contiennent que des exemples de base de l'installation des packages. Ils peuvent être différents d'une distribution Linux à l'autre.
Sélection du package
Avant de commencer le déploiement en masse d'ESET Server Security for Linux, vous devez choisir quel package utiliser. ESET Server Security for Linux est distribué sous la forme d'un package .bin. Vous pouvez toutefois obtenir un package deb/rpm en exécutant le script de distribution ESET avec l'argument de ligne de commande "-n".
Puppet
Conditions préalables
•Package bin ou deb/rpm disponible sur puppet-master
•puppet-agent connecté à puppet-master
Package bin
Étapes du déploiement :
•copier le package d'installation bin sur les machines souhaitées
•exécuter le package d'installation bin
Exemple de manifeste Puppet node default { file {"/tmp/efs-8.0.1081.0.x86_64.bin": mode => "0700", owner => "root", group => "root", source => "puppet:///modules/efs/efs-8.0.1081.0.x86_64.bin" } exec {"Execute bin package installation": command => '/tmp/efs-8.0.1081.0.x86_64.bin -y -f' } } |
Package Deb/rpm
Étapes du déploiement :
•copier le package d'installation deb/rpm selon la famille de distribution sur les machines souhaitées
•exécuter le package d'installation deb/rpm
Dépendances Les dépendances doivent être résolues avant de démarrer l'installation. |
Exemple de manifeste Puppet node default { if $osfamily == 'Debian' { file {"/tmp/efs-8.0.1081.0.x86_64.deb": mode => "0700", owner => "root", group => "root", source => "puppet:///modules/efs/efs-8.0.1081.0.x86_64.deb" } package {"efs": ensure => "installed", provider => 'dpkg', source => "/tmp/efs-8.0.1081.0.x86_64.deb" } } if $osfamily == 'RedHat' {
file {"/tmp/efs-8.0.1081.0.x86_64.rpm": mode => "0700", owner => "root", group => "root", source => "puppet:///modules/efs/efs-8.0.1081.0.x86_64.rpm" }
package {"efs": ensure => "installed", provider => 'rpm', source => "/tmp/efs-8.0.1081.0.x86_64.rpm" } } } |
Chef
Conditions préalables
•Package bin ou deb/rpm disponible sur le serveur Chef
•Client Chef connecté au serveur Chef
Package bin
Étapes du déploiement :
•copier le package d'installation bin sur les machines souhaitées
•exécuter le package d'installation bin
Exemple de recette Chef cookbook_file '/tmp/efs-8.0.1084.0.x86_64.bin' do source 'efs-7.0.1084.0.x86_64.bin' owner 'root' group 'root' mode '0700' action :create end
execute 'package_install' do command '/tmp/efs-8.0.1084.0.x86_64.bin -y -f' end |
Package Deb/rpm
Étapes du déploiement :
•copier le package d'installation deb/rpm selon la famille de distribution sur les machines souhaitées
•exécuter le package d'installation deb/rpm
Dépendances Les dépendances doivent être résolues avant de démarrer l'installation. |
Exemple de recette Chef cookbook_file '/tmp/efs-8.0.1084.0.x86_64.deb' do source 'efs-8.0.1084.0.x86_64.deb' owner 'root' group 'root' mode '0700' action :create only_if { node['platform_family'] == 'debian'} end
cookbook_file '/tmp/efs-8.0.1084.0.x86_64.rpm' do source 'efs-8.0.1084.0.x86_64.rpm' owner 'root' group 'root' mode '0700' action :create only_if { node['platform_family'] == 'rhel'}
dpkg_package 'efsu' do source '/tmp/efs-8.0.1084.0.x86_64.deb' action :install only_if { node['platform_family'] == 'debian'} end
rpm_package 'efsu' do source '/tmp/efs-8.0.1084.0.x86_64.rpm' action :install only_if { node['platform_family'] == 'rhel'} end |
Ansible
Conditions préalables
•Package bin ou deb/rpm disponible sur le serveur Ansible
•Accès ssh aux machines cibles
Package bin
Étapes du déploiement :
•copier le package d'installation bin sur les machines souhaitées
•exécuter le package d'installation bin
Exemple de tâche Playbook .... - name: "INSTALL: Copy configuration json files" copy: src: efs-8.0.1084.0.x86_64.bin dest: /home/ansible/
- name : "Install product bin package" shell: bash ./efs-8.0.1084.0.x86_64.bin -y -f -g ..... |
Package Deb/rpm
Étapes du déploiement :
•copier le package d'installation deb/rpm selon la famille de distribution sur les machines souhaitées
•exécuter le package d'installation deb/rpm
Exemple de tâche Playbook .... - name: "Copy deb package to VM" copy: src: ./efs-8.0.1085.0.x86_64.deb dest: /home/ansible/efs-8.0.1085.0.x86_64.deb owner: ansible mode: a+r when: - ansible_os_family == "Debian"
- name: "Copy rpm package to VM" copy: src: ./efs-8.0.1085.0.x86_64.rpm dest: /home/ansible/efs-8.0.1085.0.x86_64.rpm owner: ansible mode: a+r when: - ansible_os_family == "RedHat"
- name: "Install deb package" apt: deb: /home/ansible/efs-8.0.1085.0.x86_64.deb state: present when: - ansible_os_family == "Debian"
- name: "Install rpm package" yum: name: /home/ansible/efs-8.0.1085.0.x86_64.rpm state: present when: - ansible_os_family == "RedHat" .... |