17.3. 为数据和日志设置自定义存储路径
要将数据或日志存储在与默认目录不同的目录中,请使用 mssql_datadir
、mssql_datadir_mode
、mssql_logdir
和 mssql_logdir_mode
变量在现有 playbook 中指定自定义存储路径。当您定义自定义路径时,角色创建提供的目录,并确保其有正确权限和所有权。
重要
如果您稍后决定删除变量,则存储路径不会改回到默认路径,而是在最新定义的路径中保存数据。
先决条件
- 您已准备好控制节点和受管节点。
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接到受管节点的帐户具有
sudo
权限。 - 最小 2 GB RAM
-
ansible-collection-microsoft-sql
软件包安装在受管节点上。 - 受管节点使用以下版本之一: RHEL 7.9、RHEL 8、RHEL 9.4 或更高版本。
步骤
编辑现有的 playbook 文件,如
~/playbook.yml
,并添加 storage 和 log 相关的变量:--- - name: Install and configure SQL Server hosts: managed-node-01.example.com roles: - microsoft.sql.server vars: mssql_accept_microsoft_odbc_driver_17_for_sql_server_eula: true mssql_accept_microsoft_cli_utilities_for_sql_server_eula: true mssql_accept_microsoft_sql_server_standard_eula: true mssql_version: 2019 mssql_manage_firewall: true mssql_tls_enable: true mssql_tls_cert: sql_crt.pem mssql_tls_private_key: sql_cert.key mssql_tls_version: 1.2 mssql_tls_force: false mssql_password: <password> mssql_edition: Developer mssql_tcp_port: 1433 mssql_datadir: /var/lib/mssql/ mssql_datadir_mode: '0700' mssql_logdir: /var/log/mssql/ mssql_logdir_mode: '0700'
在单引号中输入权限模式,以便 Ansible 将其解析为字符串,而不是以八进制数的形式解析。
如果没有指定模式,并且目标目录不存在,则角色会在设置模式时使用系统的默认 umask。如果没有指定模式,且目标目录存在,则角色使用现有目录的模式。
验证 playbook 语法:
$ ansible-playbook --syntax-check ~/playbook.yml
请注意,这个命令只验证语法,不会防止错误但有效的配置。
运行 playbook:
$ ansible-playbook ~/playbook.yml
其他资源
-
/usr/share/ansible/roles/microsoft.sql-server/README.md
file