PivotalGreenplum®6.8-インストールガイド-ANsible Playbook例

3833 ワード

Ansible Playbookの例
Greenplumデータベース・システムを構成するホストにGreenplumデータベース・ソフトウェアのリリース・バージョンをインストールするためのAnsible playbookの例です.
このAnsible playbookでは、Greenplumデータベースソフトウェアで説明されているタスクをAnsibleを使用して自動的にインストールする方法について説明しています.
重要なヒント:このplaybook
一例として、Ansible、Chef、Puppetなどのリソース構成ツールを使用してGreenplumデータベースクラスタの構成およびソフトウェアインストールタスクを自動的に実行する方法を説明します.Pivotalは、Ansibleまたはこの例のplaybookに対してサポートサービスを提供しません.
このPlaybookの例はCentOS 7との併用を目的としている.gpadminを作成します ユーザー、Greenplumデータベースソフトウェアリリースバージョンのインストール、インストール済みソフトウェアのownerとgroupの設定 gpadmin、および gpadmin ユーザーはPamセキュリティの制限を設定します.
スクリプトを変更して、OSプラットフォームと一緒に使用したり、他のホスト構成タスクを実行したりできます.
以下に、このAnsible playbookを使用する手順を示します.
  • ソフトウェアパッケージマネージャを使用して、制御ノードにAnsibleをインストールします.Ansibleドキュメントを参照してください を参照してください.
  • 制御ノードからGreenplumデータベースクラスタを構成するすべてのホストに、パスワードフリーSSHを設定します.ssh-copy-idコマンドを使用して、クラスタ内の各ホストにSSH公開鍵をインストールできます.あるいは、リソース構成ツールは、複数のホストに公開鍵を安全にインストールするより便利な方法を提供します.
  • は、Greenplumデータベースクラスタを構成するホストのリストを含むファイルを作成することによって、Ansibleライブラリを作成します.たとえば、
    mdw
    sdw1
    sdw2
    ...
    はファイルを編集し、Greenplumデータベースツールgpssh-exkeysと および gpinitsystemと一緒に使用します.
  • 次のplaybookコードをAnsible制御ノード上のファイルansible-playbook.ymlにコピーする .
  • playbookの上部にある変数、たとえば作成するgpadminを編集 ユーザーとパスワード、およびインストールするGreenplumデータベースのバージョンを管理します.
  • playbookを実行し、インストールするパッケージを package_path パラメータ.
    ansible-playbook ansible-playbook.yml -i hosts -e package_path=./greenplum-db-6.0.0-rhel7-x86_64.rpm

  • Ansible Playbook-CentOS 7のGreenplumデータベースインストール
    ---
    
    - hosts: all
      vars:
        - version: "6.0.0"
        - greenplum_admin_user: "gpadmin"
        - greenplum_admin_password: "changeme"
        # - package_path: passed via the command line with: -e package_path=./greenplum-db-6.0.0-rhel7-x86_64.rpm
      remote_user: root
      become: yes
      become_method: sudo
      connection: ssh
      gather_facts: yes
      tasks:
        - name: create greenplum admin user
          user:
            name: "{{ greenplum_admin_user }}"
            password: "{{ greenplum_admin_password | password_hash('sha512', 'DvkPtCtNH+UdbePZfm9muQ9pU') }}"
        - name: copy package to host
          copy:
            src: "{{ package_path }}"
            dest: /tmp
        - name: install package
          yum:
            name: "/tmp/{{ package_path | basename }}"
            state: present
        - name: cleanup package file from host
          file:
            path: "/tmp/{{ package_path | basename }}"
            state: absent
        - name: find install directory
          find:
            paths: /usr/local
            patterns: 'greenplum*'
            file_type: directory
          register: installed_dir
        - name: change install directory ownership
          file:
            path: '{{ item.path }}'
            owner: "{{ greenplum_admin_user }}"
            group: "{{ greenplum_admin_user }}"
            recurse: yes
          with_items: "{{ installed_dir.files }}"
        - name: update pam_limits
          pam_limits:
            domain: "{{ greenplum_admin_user }}"
            limit_type: '-'
            limit_item: "{{ item.key }}"
            value: "{{ item.value }}"
          with_dict:
            nofile: 524288
            nproc: 131072
        - name: find installed greenplum version
          shell: . /usr/local/greenplum-db/greenplum_path.sh && /usr/local/greenplum-db/bin/postgres --gp-version
          register: postgres_gp_version
        - name: fail if the correct greenplum version is not installed
          fail:
            msg: "Expected greenplum version {{ version }}, but found '{{ postgres_gp_version.stdout }}'"
          when: "version is not defined or version not in postgres_gp_version.stdout"

    プレイブック 正常に実行されると、データ・ストレージの作成とGreenplumデータベース・システムの初期化を続行できます.
    親トピック: Greenplumのインストールとアップグレード