LAMP-MySQL(또는 이에 상응하는 것)이 있습니까?불가지론자데이터베이스 스택을 생성하는 방법은 다음과 같습니다.
- DB 사용자 및 상대 비밀번호
- 사용자와 동일한 이름을 가진 데이터베이스
- 데이터베이스의 호스트를 설정합니다(예:
localhost
). - 사용자에게 모든 권한 부여
이 방법이나 접근 방식이 필요한 이유는 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
이는 이 문제를 해결하는 데 사용할 수 있는 구조에 대한 아이디어를 제공하기 위한 매우 일반적이고 불완전한 예입니다.