@ -198,7 +198,7 @@ $ ansible-playbook main.yml -v
Создайте файл 1.yml и поместите содержимое из листинга следующего ниже. Отличие от предыдущего примера заключается в добавлении блока с переменными `vars` . В с е действия понадобится выполнять с правами `root` , поэтому мы добавляем параметр `become: yes` .
Создайте файл 1.yml и поместите содержимое из листинга следующего ниже. Отличие от предыдущего примера заключается в добавлении блока с переменными `vars` . В с е действия понадобится выполнять с правами `root` , поэтому мы добавляем параметр `become: yes` .
Первая задача - создать пользователя `gpadmin` и установить ему пароль `changeme` .
Первая задача - создать пользователя `gpadmin` и установить ему пароль `changeme` с помощью модуля `user` (https://docs.ansible.com/ansible/latest/collections/ansible/builtin/user_module.html). Перед установкой поменяйте пароль на более сложный .
```yaml
```yaml
---
---
@ -213,6 +213,7 @@ $ ansible-playbook main.yml -v
user:
user:
name: "{{ greenplum_admin_user }}"
name: "{{ greenplum_admin_user }}"
password: "{{ greenplum_admin_password | password_hash('sha512', 'DvkPtCuQ9pU') }}"
password: "{{ greenplum_admin_password | password_hash('sha512', 'DvkPtCuQ9pU') }}"
shell: /bin/bash
```
```
```
```
$ ansible-playbook 1.yml
$ ansible-playbook 1.yml
@ -252,22 +253,23 @@ $ ansible-playbook 2.yml
```yaml
```yaml
---
---
- hosts: all
- hosts: cluster
vars:
vars:
- version: "6.0.0"
- version: "6.0.0"
- greenplum_admin_user: "gpadmin"
- greenplum_admin_user: "gpadmin"
- greenplum_admin_password: "changeme"
- greenplum_admin_password: "changeme"
# - package_path: passed via the command line with: -e package_path=
remote_user: root
become: yes
become: yes
become_method: sudo
connection: ssh
gather_facts: yes
tasks:
tasks:
- name: install package
- name: install package
apt:
apt:
name: greenplum-db-6
name: greenplum-db-6
state: present
state: present
- name: find install directory
find:
paths: /opt
patterns: 'greenplum*'
file_type: directory
register: installed_dir
- name: change install directory ownership
- name: change install directory ownership
file:
file:
path: '{{ item.path }}'
path: '{{ item.path }}'
@ -275,6 +277,9 @@ $ ansible-playbook 2.yml
group: "{{ greenplum_admin_user }}"
group: "{{ greenplum_admin_user }}"
recurse: yes
recurse: yes
with_items: "{{ installed_dir.files }}"
with_items: "{{ installed_dir.files }}"
- name: add bin folder to gpadmin PATH
shell: echo "{{"
with_items: "{{ installed_dir.files }}"
```
```
```
```
$ ansible-playbook 3.yml
$ ansible-playbook 3.yml
@ -283,16 +288,13 @@ $ ansible-playbook 3.yml
### 2.5 Настроим параметры О С для Greenplum
### 2.5 Настроим параметры О С для Greenplum
```yaml
```yaml
- hosts: all
---
- hosts: cluster
vars:
vars:
- version: "6.0.0"
- version: "6.0.0"
- greenplum_admin_user: "gpadmin"
- greenplum_admin_user: "gpadmin"
- greenplum_admin_password: "changeme"
- greenplum_admin_password: "changeme"
remote_user: root
become: yes
become: yes
become_method: sudo
connection: ssh
gather_facts: yes
tasks:
tasks:
- name: update pam_limits
- name: update pam_limits
pam_limits:
pam_limits:
@ -309,18 +311,18 @@ $ ansible-playbook 4.yml
```
```
### 2.6 Проверка установленной версии
### 2.6 Проверка установленной версии
Напишем конфигурацию, которая подтверждает, что всё установлено верно.
```yaml
```yaml
- hosts: all
---
- hosts: cluster
vars:
vars:
- version: "6.0.0"
- version: "6.0.0"
remote_user: root
become: yes
become: yes
become_method: sudo
connection: ssh
gather_facts: yes
tasks:
tasks:
- name: find installed greenplum version
- name: find installed greenplum version
shell: . /usr/local/greenplum-db/greenplum_path.sh & & /usr/local/greenplum-db/ bin/postgres --gp-version
shell: . /bin/postgres --gp-version
register: postgres_gp_version
register: postgres_gp_version
- name: fail if the correct greenplum version is not installed
- name: fail if the correct greenplum version is not installed
fail:
fail: