PivotalGreenplum®6.8-安装指南-Ansible Playbook示例

Ansible Playbook示例

一个Ansible playbook 示例,用于将Greenplum数据库软件发行版本安装到将组成Greenplum数据库系统的主机上。

该Ansible playbook介绍了如何使用Ansible自动化地安装Greenplum数据库软件中描述的任务。

重要提示:本playbook 仅作为一个示例,用来说明如何使用诸如Ansible,Chef或Puppet之类的资源配置工具自动执行Greenplum数据库集群的配置和软件安装任务。Pivotal对Ansible或此示例中的playbook不提供支持服务。

playbook 示例旨在与CentOS 7一起使用。 它创建gpadmin 用户、安装Greenplum数据库软件发行版本、将已安装软件的owner和group设置为 gpadmin,并为 gpadmin 用户设置Pam安全限制。

您可以修改脚本以使其与操作系统平台一起使用,和执行其他的主机配置任务。

以下是使用此Ansible playbook的步骤。

  1. 使用软件包管理器在控制节点上安装Ansible。请参阅Ansible文档 以获取安装帮助。
  2. 从控制节点到将构成Greenplum数据库集群的所有主机上,设置免密码SSH。您可以使用ssh-copy-id命令在集群中的每个主机上安装SSH公钥。或者,您的资源配置工具可能提供了更便捷的方式来在多个主机上安全地安装公钥。
  3. 通过创建一个包含组成您的Greenplum数据库集群的主机列表的文件,来创建Ansible库。例如:
    mdw
    sdw1
    sdw2
    ...
    可以编辑该文件,并与Greenplum数据库工具gpssh-exkeys 和 gpinitsystem 一起使用。
  4. 将下面的playbook 代码,复制到Ansible控制节点上的文件 ansible-playbook.yml 。
  5. 编辑playbook 顶部的变量,例如 要创建的gpadmin 管理用户和密码,以及要安装的Greenplum数据库的版本。
  6. 运行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"

playbook 成功执行后,您可以继续创建数据存储区和初始化Greenplum数据库系统。

父主题: 安装和升级Greenplum

你可能感兴趣的:(Greenplum)