Ansible: κΈ°λ³Έ PostgreSQL ν”Œλ ˆμ΄λΆ μ‹€νŒ¨

에 λ§Œλ“  2016λ…„ 03μ›” 24일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: ansible/ansible

문제 μœ ν˜•
  • 버그 μ‹ κ³ 
    ANSIBLE 버전
Package: ansible
Status: install ok installed
Priority: optional
Section: admin
Installed-Size: 7157
Maintainer: Ansible, Inc. <[email protected]>
Architecture: all
Version: 2.0.0.2-1ppa~trusty
Depends: python, python-support (>= 0.90), python-jinja2, python-yaml, python-paramiko, python-httplib2, python-six, python-crypto (>= 2.6), python-setuptools, sshpass
Conffiles:
 /etc/ansible/hosts 1564b951dc7c8511c6f9ee842653c541
 /etc/ansible/ansible.cfg 248f57c4cb0f11fe8fd5f39b12ac8205
Description: A radically simple IT automation platform
 A radically simple IT automation platform that makes your applications and
 systems easier to deploy. Avoid writing scripts or custom code to deploy and
 update your applicationsβ€” automate in a language that approaches plain English,
 using SSH, with no agents to install on remote systems.
Homepage: http://ansible.github.com/

ꡬ성

아무것도, λ‚΄κ°€ μ•„λŠ” ν•œ. λ‹€λ₯Έ 방법을 μ•Œκ²Œ 되면 μ—…λ°μ΄νŠΈν•˜κ² μŠ΅λ‹ˆλ‹€.

OS / ν™˜κ²½
μš”μ•½

λ‚˜λŠ” 였λ₯˜κ°€ λ°œμƒν•˜λŠ” 이유λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ μ•½ 1μ‹œκ°„ λ™μ•ˆ IRC에 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

λ‚΄ ν”Œλ ˆμ΄λΆμ—λŠ” λ³€μˆ˜ 이름 μ™Έμ—λŠ” 아무 것도 μ—†μŠ΅λ‹ˆλ‹€. 이것은 κΉ¨λ—ν•˜κ³  μ‹ μ„ ν•œ μš©κΈ°μ— μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” psql -U postgres 잘 ν•  수 μžˆμœΌλ―€λ‘œ 이것은 κ°€λŠ₯ν•œ κ²ƒμ΄μ–΄μ•Όν•©λ‹ˆλ‹€.

λ²ˆμ‹ 단계
 - name: Install PostgreSQL and related packages
   apt: name={{ item }} state=present update_cache=yes
   with_items:
      - postgresql
      - postgresql-contrib
      - python-psycopg2

 - name: Create new database user
   become_user: postgres
   postgresql_user: name=apples role_attr_flags=SUPERUSER,CREATEROLE,CREATEDB,REPLICATION

μ˜ˆμƒ κ²°κ³Ό

λ°μ΄ν„°λ² μ΄μŠ€μ— μ•‘μ„ΈμŠ€ν•˜κ³  μ‚¬μš©μžλ₯Ό μƒμ„±ν•˜λ„λ‘ ν•©λ‹ˆλ‹€.

μ‹€μ œ κ²°κ³Ό
<postgres-dev.domain.com> ESTABLISH SSH CONNECTION FOR USER: root
<postgres-dev.domain.com> SSH: EXEC ssh -C -vvv -o ControlMaster=auto -o ControlPersist=60s -o Port=22 -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=root -o ConnectTimeout=10 -o ControlPath=/tmp/ansible-ssh-%h-%p-%r postgres-dev.domain.com 'LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 /usr/bin/python'
fatal: [postgres-dev.domain.com]: FAILED! => {"changed": false, "failed": true, "invocation": {"module_args": {"db": "", "encrypted": false, "expires": null, "fail_on_user": true, "login_host": "", "login_password": "", "login_unix_socket": "", "login_user": "postgres", "name": "rooted", "no_password_changes": false, "password": null, "port": "5432", "priv": null, "role_attr_flags": "SUPERUSER,CREATEROLE,CREATEDB,REPLICATION", "state": "present", "user": "rooted"}, "module_name": "postgresql_user"}, "msg": "unable to connect to database: FATAL:  Peer authentication failed for user \"postgres\"\n"}
postgresql

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

후손을 μœ„ν•΄ μƒˆ db λ˜λŠ” μƒˆ μ‚¬μš©μžλ₯Ό λ§Œλ“œλŠ” 경우 postgres μ‚¬μš©μžκ°€ λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. 이 μž‘μ—…μ„ 루트둜 μ‹œλ„ν–ˆλŠ”λ° 계속 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. μ•„λž˜ μž‘μ—… 예.

  - name: make events database
    postgresql_db:
      name: events
    become: true
    become_user: postgres

  - name: make www-data postgresql user
    postgresql_user:
      db: events
      name: www-data
      password: "{{ psql_password }}"
      priv: ALL
    become: true
    become_user: postgres

λͺ¨λ“  3 λŒ“κΈ€

이 글을 μ½λŠ”λ° μ‹œκ°„μ„ λ‚­λΉ„ν•˜κ²Œ ν•΄μ„œ μ£„μ†‘ν•©λ‹ˆλ‹€. become: yes 을(λ₯Ό) λˆ„λ½ν–ˆμŠ΅λ‹ˆλ‹€.

후손을 μœ„ν•΄ μƒˆ db λ˜λŠ” μƒˆ μ‚¬μš©μžλ₯Ό λ§Œλ“œλŠ” 경우 postgres μ‚¬μš©μžκ°€ λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. 이 μž‘μ—…μ„ 루트둜 μ‹œλ„ν–ˆλŠ”λ° 계속 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. μ•„λž˜ μž‘μ—… 예.

  - name: make events database
    postgresql_db:
      name: events
    become: true
    become_user: postgres

  - name: make www-data postgresql user
    postgresql_user:
      db: events
      name: www-data
      password: "{{ psql_password }}"
      priv: ALL
    become: true
    become_user: postgres

Ansible 2.6.2λ₯Ό μ‚¬μš©ν•˜κ³  μžˆλŠ”λ° μ—¬μ „νžˆ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰