Wdrożenie masowe
Ten temat zawiera przegląd wysokiego poziomu wdrożenia masowego programu ESET Server Security for Linux za pomocą narzędzi Puppet, Chef i Ansible. Przedstawione poniżej bloki kodu obejmują tylko podstawowe przykłady metod instalacji pakietów. Mogą one różnić się w zależności od dystrybucji systemu Linux.
Wybór pakietu
Przed rozpoczęciem masowego wdrożenia programu ESET Server Security for Linux należy wybrać pakiet do zastosowania. Program ESET Server Security for Linux jest rozpowszechniany jako pakiet w formacie .bin. Można również uzyskać pakiet w formacie deb/rpm, uruchamiając skrypt dystrybucyjny firmy ESET z użyciem argumentu wiersza polecenia „-n”.
Puppet
Warunki wstępne
•pakiet w formacie bin lub deb/rpm dostępny na serwerze puppet-master
•agent puppet-agent połączony z serwerem puppet-master
Pakiet w formacie bin
Kroki wdrożenia:
•skopiowanie pakietu instalacyjnego w formacie bin na odpowiednie komputery
•uruchomienie pakietu instalacyjnego w formacie bin
Przykładowy manifest narzędzia 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' } } |
Pakiet w formacie deb/rpm
Kroki wdrożenia:
•skopiowanie pakietu instalacyjnego w formacie deb/rpm zgodnie z rodziną dystrybucji na odpowiednie komputery
•uruchomienie pakietu instalacyjnego w formacie deb/rpm
Zależności Problemy z zależnościami należy rozwiązać przed rozpoczęciem instalacji |
Przykładowy manifest narzędzia 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
Warunki wstępne
•pakiet w formacie bin lub deb/rpm dostępny na serwerze Chef
•klient narzędzia Chef połączony z serwerem Chef
Pakiet w formacie bin
Kroki wdrożenia:
•skopiowanie pakietu instalacyjnego w formacie bin na odpowiednie komputery
•uruchomienie pakietu instalacyjnego w formacie bin
Przykładowy przepis narzędzia 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 |
Pakiet w formacie deb/rpm
Kroki wdrożenia:
•skopiowanie pakietu instalacyjnego w formacie deb/rpm zgodnie z rodziną dystrybucji na odpowiednie komputery
•uruchomienie pakietu instalacyjnego w formacie deb/rpm
Zależności Problemy z zależnościami należy rozwiązać przed rozpoczęciem instalacji |
Przykładowy przepis narzędzia 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
Warunki wstępne
•pakiet w formacie bin lub deb/rpm dostępny na serwerze Ansible
•dostęp ssh do komputerów docelowych
Pakiet w formacie bin
Kroki wdrożenia:
•skopiowanie pakietu instalacyjnego w formacie bin na odpowiednie komputery
•uruchomienie pakietu instalacyjnego w formacie bin
Przykładowe zadanie 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 ..... |
Pakiet w formacie deb/rpm
Kroki wdrożenia:
•skopiowanie pakietu instalacyjnego w formacie deb/rpm zgodnie z rodziną dystrybucji na odpowiednie komputery
•uruchomienie pakietu instalacyjnego w formacie deb/rpm
Przykładowe zadanie 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" .... |