是否有LAMP-MySQL (或等效的)不可知论的方法来创建一个DB堆栈,包括:
localhost)我需要这样一种方式或方法的原因是,当使用不同的LAMP-MySQL (或类似的) DB程序作为LAMP的一部分时,会有更轻松的生活。
例如,并不是所有的LAMP堆栈都有特别的MySQL或MariaDB,对于每个MySQL变体,SQL语法或DB (Bash)扩展语法可能略有不同,因此我寻求以LAMP-RDBMS无关的方式进行标准化。
发布于 2019-01-23 11:46:42
我不确定是否已经存在任何东西(即银河系统),但是Ansible无疑提供了所有的构建块来实现这一点。之所以没有这样做,或者至少没有公开发布,是因为没有一种方法来配置数据库,更不用说一种商定的方法,即任何DB技术都应该进行一般配置。所以我猜你需要自己动手。
至于如何做到这一点,我可能会研究一种方法:
一个伪例子:
playbook.yml
---
# Apply the 'db' role to DB hosts
- hosts: db_hosts
roles:
- db角色/db/默认值/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/任务/main.yml
---
# Do postgresql specific tasks here角色/mysql/任务/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请注意,这是一个非常普遍的,非常不完整的例子,给你一个结构的想法,你可以用来解决这个问题。
https://unix.stackexchange.com/questions/494711
复制相似问题