LAMP DB에 구애받지 않는 방식으로 데이터베이스 스택 생성

LAMP DB에 구애받지 않는 방식으로 데이터베이스 스택 생성

LAMP-MySQL(또는 이에 상응하는 것)이 있습니까?불가지론자데이터베이스 스택을 생성하는 방법은 다음과 같습니다.

  1. DB 사용자 및 상대 비밀번호
  2. 사용자와 동일한 이름을 가진 데이터베이스
  3. 데이터베이스의 호스트를 설정합니다(예: localhost).
  4. 사용자에게 모든 권한 부여

이 방법이나 접근 방식이 필요한 이유는 LAMP의 일부로 다른 LAMP-MySQL(또는 이에 상응하는) 데이터베이스 프로그램을 사용할 때 생활을 더 쉽게 만들기 위한 것입니다.

예를 들어 모든 LAMP 스택에 특별히 MySQL 또는 MariaDB가 있는 것은 아니며, 각 DB SQL 변형에는 약간 다른 SQL 구문이나 DB-CLUI(Bash) 확장 구문이 있을 수 있으므로 LAMP-RDBMS에 구애받지 않는 방식으로 표준화를 찾고 있습니다.

답변1

이미 존재하는 것이 있는지는 확실하지 않지만(예: Galaxy에) Ansible은 이를 수행하기 위한 모든 구성 요소를 제공합니다. 이것이 완료되지 않았거나 적어도 공개적으로 공개되지 않았을 가능성이 높습니다. 한 가지 이유는하나합의된 방법은 물론 데이터베이스 구성 방법도어느DB 기술은 일반적으로 구성되어야 합니다. 그래서 직접 해보셔야 할 것 같아요.

이를 수행하는 방법은 다음과 같은 방법을 조사해 볼 수 있습니다.

  • 일반 매개변수 집합(예: 데이터베이스 기술, 기본 사용자, 기본 데이터베이스)이 전달될 것으로 예상하는 일반 데이터베이스 역할을 작성합니다.
  • 각 데이터베이스 기술 유형에 대해 하나의 역할을 작성하고 공개 매개변수만 전달합니다. 그런 다음 이 역할은 데이터베이스 기술 관련 작업을 실행하여 인스턴스를 구성합니다.
  • 데이터베이스 기술 유형을 기반으로 일반 데이터베이스 역할에 역할 종속성을 추가합니다.

가짜 예:

script.yml

---

# Apply the 'db' role to DB hosts
- hosts: db_hosts
  roles:
    - db

역할/db/defaults/main.yml

---

# Provide a default tech so one does not have to be passed at run time
db_technology: postgresql

역할/db/meta/main.yml

---

# Include the specific DB tech role, based on the value of 'db_technology'
dependencies:
  - { role: postgresql, db_params: "{{ db_params }}", when: db_technology == 'postgresql' }
  - { role: mysql, db_params: "{{ db_params }}",  when: db_technology == 'mysql' }

역할/db/작업/main.yml

---

# Do tasks that are common to all DB types here

역할/postgresql/tasks/main.yml

---

# Do postgresql specific tasks here

역할/mysql/tasks/main.yml

---

# Do mysql specific tasks here

마지막으로 다음 명령을 실행할 수 있습니다.

ansible-playbook -e "db_technology=mysql, db_params={'users': {'someuser': 'somepassword'}, 'dbs': ['some_db_name', 'another_db_name']" playbook.yml

이는 이 문제를 해결하는 데 사용할 수 있는 구조에 대한 아이디어를 제공하기 위한 매우 일반적이고 불완전한 예입니다.

관련 정보