17.3. 为数据和日志设置自定义存储路径

要将数据或日志存储在与默认目录不同的目录中,请使用 mssql_datadirmssql_datadir_modemssql_logdirmssql_logdir_mode 变量在现有 playbook 中指定自定义存储路径。当您定义自定义路径时,角色创建提供的目录,并确保其有正确权限和所有权。

重要

如果您稍后决定删除变量,则存储路径不会改回到默认路径,而是在最新定义的路径中保存数据。

先决条件

  • 您已准备好控制节点和受管节点
  • 以可在受管主机上运行 playbook 的用户登录到控制节点。
  • 用于连接到受管节点的帐户具有 sudo 权限。
  • 最小 2 GB RAM
  • ansible-collection-microsoft-sql 软件包安装在受管节点上。
  • 受管节点使用以下版本之一: RHEL 7.9、RHEL 8、RHEL 9.4 或更高版本。

步骤

  1. 编辑现有的 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。如果没有指定模式,且目标目录存在,则角色使用现有目录的模式。

  2. 验证 playbook 语法:

    $ ansible-playbook --syntax-check ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误但有效的配置。

  3. 运行 playbook:

    $ ansible-playbook ~/playbook.yml

其他资源

  • /usr/share/ansible/roles/microsoft.sql-server/README.md file