30.3. postgresql 역할 변수

postgresql RHEL 시스템 역할의 다음 변수를 사용하여 PostgreSQL 서버 동작을 사용자 지정할 수 있습니다.

postgresql_verison

PostgreSQL 서버의 버전을 10, 12 또는 13으로 설정할 수 있습니다. 예를 들면 다음과 같습니다.

postgresql_version: "13"
postgresql_password

선택적으로 postgres 데이터베이스 슈퍼유저의 암호를 설정할 수 있습니다. 기본적으로 암호가 설정되지 않으며 UNIX 소켓을 통해 postgres 시스템 계정에서 데이터베이스에 액세스할 수 있습니다. Ansible Vault를 사용하여 암호를 암호화하는 것이 좋습니다. 예를 들면 다음과 같습니다.

postgresql_password: !vault |
      	$ANSIBLE_VAULT;1.2;AES256;dev
      	....
postgresql_pg_hba_conf

postgresql_pg_hba_conf 변수의 내용은 /var/lib/pgsql/data/pg_hba.conf 파일의 기본 업스트림 구성을 대체합니다. 예를 들면 다음과 같습니다.

postgresql_pg_hba_conf:
  - type: local
    database: all
    user: all
    auth_method: peer
  - type: host
    database: all
    user: all
    address: '127.0.0.1/32'
    auth_method: ident
  - type: host
    database: all
    user: all
    address: '::1/128'
    auth_method: ident
postgresql_server_conf

postgresql_server_conf 변수의 콘텐츠는 /var/lib/pgsql/data/postgresql.conf 파일의 끝에 추가됩니다. 결과적으로 기본 설정을 덮어씁니다. 예를 들면 다음과 같습니다.

postgresql_server_conf:
  ssl: on
  shared_buffers: 128MB
  huge_pages: try
postgresql_ssl_enable

SSL/TLS 연결을 설정하려면 postgresql_ssl_enable 변수를 true 로 설정합니다.

postgresql_ssl_enable: true

또한 다음 방법 중 하나를 사용하여 서버 인증서와 개인 키를 제공합니다.

  • 기존 인증서 및 개인 키를 사용하려면 postgresql_cert_name 변수를 사용합니다.
  • postgresql_certificates 변수를 사용하여 새 인증서를 생성합니다.
postgresql_cert_name

자체 인증서 및 개인 키를 사용하려면 postgresql_cert_name 변수를 사용하여 인증서 이름을 지정합니다. 인증서와 키 파일을 동일한 디렉터리에 보관하고 .crt.key 접미사와 동일한 이름 아래에 보관해야 합니다.

예를 들어 인증서 파일이 /etc/certs/server.crt 에 있고 /etc/certs/server.key 의 개인 키에 있는 경우 postgresql_cert_name 값을 다음과 같이 설정합니다.

postgresql_cert_name: /etc/certs/server
postgresql_certificates

postgresql_certificates 변수에는 redhat.rhel_system_roles.certificate 역할에서 사용하는 것과 동일한 형식의 dict 목록이 필요합니다. 인증서 역할이 PostgreSQL 역할로 구성된 PostgreSQL 서버의 인증서를 생성하도록 하려면 postgresql_certificates 변수를 지정합니다. 다음 예에서는 /etc/pki/tls/certs/ 디렉터리에 자체 서명된 인증서 postgresql_cert.crt 가 생성됩니다. 기본적으로 인증서가 자동으로 생성되지 않습니다([]).

postgresql_certificates:
  - name: postgresql_cert
    dns: ['localhost', 'www.example.com']
    ca: self-sign
postgresql_input_file

SQL 스크립트를 실행하려면 postgresql_input_file 변수를 사용하여 SQL 파일의 경로를 정의합니다.

postgresql_input_file: "/tmp/mypath/file.sql"
postgresql_server_tuning

기본적으로 PostgreSQL 시스템 역할은 시스템 리소스를 기반으로 서버 설정 최적화를 활성화합니다. 튜닝을 비활성화하려면 postgresql_server_tuning 변수를 false 로 설정합니다.

postgresql_server_tuning: false

추가 리소스

  • rhel-system-roles 패키지로 설치된 문서: /usr/share/doc/rhel-system-roles/postgresql/ 디렉터리의 README.md 또는 README.html 파일