IBM Cloud Docs
強化 Linux リポジトリー・サーバーの OS の構成

強化 Linux リポジトリー・サーバーの OS の構成

このステップでは、Veeam® の強化 Linux® バックアップ・サーバーとして役割を果たせるようにサーバーを準備するための、いくつかのオペレーティング・システム (OS) 構成タスクを含む Ansible® Playbook について説明します。 この Playbbok は、Red Hat® ディストリビューションに対してテストされます。

Playbook は以下のタスクを実行します。

Playbook は、Visual Studio Code などのエディターを使用してラップトップ上でローカルに作成できます。自動化サーバーの \swlib\ansible ディレクトリーに転送することも、vi や nano などのテキスト・エディターで自動化サーバー上でローカルに編集することもできます。

サーバー名と IP アドレスは、AD/DNS サーバー内の DNS に登録する必要があります。

Playbook の作成

Playbook create_lhbr.yml は、以下のコードで開始します。

- hosts: lhbr
  vars_files:
    - vault
  vars:
    password: "{{ vault_lhbr_password }}"
    timezone: <timezone>
    vbr_ip: <vbr_ip>
    ansible_ip: <ansible_ip>
    dns_1: <addns1>
    dns_2: <addns2>

  tasks:

上記のコード・スニペットのtimezonevbr_ipansible_ipaddns1 および addns2 を、以前のステップで取得した値に置き換えます。 上記のコードにより、以下のアクションが実行されます。

  • インベントリー・ファイル内で lhbr として定義されているホスト上で Playbook を実行することを定義します。
  • 他の変数を含む、vault という名前のファイルを定義します。 前のステップで作成された vault ファイルは暗号化されており、パスワードなどの機密変数が含まれています。
  • タイム・ゾーン、ファイアウォールを構成するための VBR サーバーと自動化サーバーの IP アドレス、および DNS 変更のための DNS IP アドレスを定義します。

OS パッケージのアップグレード

以下のコード・スニペットにより、パッケージ・キャッシュが更新され、OS パッケージがアップグレードされます。

tasks:
    - name: Update cache
      yum:
        update_cache: yes

    - name: Upgrade all packages
      yum:
        name: "*"
        state: latest

タイム・ゾーンの構成

Red Hat ディストリビューションでは、NTP サーバーが構成され、servertime.service.softlayer.com を指しています。 そのため、正しいタイム・ゾーンのみを構成する必要があります。

    - name: Set timezone
      community.general.timezone:
        name: "{{ timezone }}"

リポジトリーのファイル・システムの構成

コード・スニペットにより、以下のアクションが実行されます。

  • /disk1 ファイル・システムをアンマウントする。
  • fstab が設定できるように、パーティションの UUID をキャプチャします。
  • UUID に /mnt/veeamrepo01 を使用し、xfs 区画をマウントする。
    - name: Unmount and remove from /etc/fstab
      ansible.posix.mount:
        path: /disk1
        state: absent

    - name: Unmount and remove from /etc/fstab
      ansible.posix.mount:
        path: /mnt/veeamrepo01
        state: absent

    - name: Get UUID of /dev/sdb1 and store in variable
      command: blkid -s UUID -o value /dev/sdb1
      register: uuid_dev_sdb1

    - name: Mount as /mnt/veeamrepo01 and add to /etc/fstab
      ansible.posix.mount:
        path: /mnt/veeamrepo01
        src: "UUID={{ uuid_dev_sdb1.stdout }}"
        fstype: xfs
        state: mounted

上記のコードを実行する前に、サーバーで df -Th コマンドを実行すると、出力は以下のようになります。

Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs   32G     0   32G   0% /dev
tmpfs          tmpfs      32G     0   32G   0% /dev/shm
tmpfs          tmpfs      32G   42M   32G   1% /run
tmpfs          tmpfs      32G     0   32G   0% /sys/fs/cgroup
/dev/sda3      xfs       929G  9.2G  920G   1% /
/dev/sda1      xfs      1006M  273M  734M  28% /boot
/dev/sdb1      xfs        11T   80G   11T   1% /disk1
tmpfs          tmpfs     6.3G     0  6.3G   0% /run/user/1001

上記のコードを実行した後、df -Th コマンドを実行した場合、出力は以下のように表示されます。

Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs   32G     0   32G   0% /dev
tmpfs          tmpfs      32G     0   32G   0% /dev/shm
tmpfs          tmpfs      32G   42M   32G   1% /run
tmpfs          tmpfs      32G     0   32G   0% /sys/fs/cgroup
/dev/sda3      xfs       929G  9.2G  920G   1% /
/dev/sda1      xfs      1006M  273M  734M  28% /boot
/dev/sdb1      xfs        11T   80G   11T   1% /mnt/veeamrepo01
tmpfs          tmpfs     6.3G     0  6.3G   0% /run/user/1001

ユーザーの追加およびファイル・システムの所有権の変更

コード・スニペットにより、以下のアクションが実行されます。

  • veeamlhbr という名前のグループの追加。
  • veeamlhbr という名前のユーザーの追加。
  • /mnt/veeamrepo01 の所有権を変更し、所有者は読み取り、書き込み、および実行が可能で、グループは読み取り、書き込み、および実行ができないように許可を設定します。 他のユーザーは、読み取り、書き込み、および実行ができません。 Veeam では、ファイル・システムの読み取りと書き込みを行う際にこのユーザーを使用します。

リポジトリーのセキュリティーを最大限に高めるため、Linux サーバー上の認証証明書のファイル・アクセス権を変更します。 詳しくは、硬化リポジトリのセキュリティを強化するためのヒントを参照してください。

   - name: Create the veeamlhbr group
     ansible.builtin.group:
       name: veeamlhbr
       state: present

    - name: Add the user 'veeamlhbr' with a bash shell
      ansible.builtin.user:
        name: veeamlhbr
        shell: /bin/bash
        create_home: yes
        password: "{{ password | password_hash('sha512') }}"
        state: present
        groups: veeamlhbr,wheel
        append: yes

    - name: Change ownership of /mnt/veeamrepo01 to veeamlhbr
      ansible.builtin.file:
        path: /mnt/veeamrepo01
        state: directory
        owner: veeamlhbr
        group: veeamlhbr
        mode: "700"

Linux ファイアウォールの設定

コード・スニペットにより、以下のアクションが実行されます。

  • TCP ポート 22 上の Veeam バックアップ・サーバーからの SSH の許可。 このルールは、最初に Veeam バックアップ・サーバーが接続され、必要な Veeam サービスがインストールされると削除されます。
  • 自動化サーバーからの SSH アクセスを許可。 このルールは、コンフィギュレーション・タスクの完了後に削除できる。 ただし、削除すると今後の保守作業が困難になる可能性があります。
  • Veeam バックアップ・サーバーが TCP ポート 6162 にアクセスできるように許可。 このポートは、リポジトリー・サーバーとの通信に使用される Veeam 制御チャネルです。
  • ファイアウォールが開始され、起動すると有効になり、ロギングが有効化されます。
    - name: Enable firewalld on system reboot
      service:
        name: firewalld
        enabled: yes

    - name: Allow SSH
      ansible.posix.firewalld:
        service: ssh
        permanent: yes
        state: enabled

    - name: Allow incoming access from the vbr server for management
      ansible.posix.firewalld:
        port: 6162/tcp
        permanent: yes
        state: enabled

    - name: Reload firewall and enable firewall on boot
      service:
        name: firewalld
        state: restarted

DNS の変更

以下のコード・スニペットは、IBM Cloud® DNSリゾルバ - 10.0.80.1110.0.80.12 のDNSを、VMware Cloud Foundation for Classic - Automated インスタンスDNS - addns1addns2 で変更します。

    - name: Change resolv nameserver_1
      replace:
        path: /etc/resolv.conf
        regexp: "10.0.80.11"
        replace: "{{ dns_1 }}"

    - name: Change resolv nameserver_2
      replace:
        path: /etc/resolv.conf
        regexp: "10.0.80.12"
        replace: "{{ dns_2 }}"

Playbook のファイナライズ

ファイルを保存します。 ファイルは、自動化サーバー上の \swlib\ansible ディレクトリーに保存するようにします。