搜索

17.3. 使用自定义存储路径安装和配置 SQL Server,使用 microsoft.sql.server Ansible 系统角色

download PDF

当您使用 microsoft.sql.server Ansible 系统角色来安装和配置新的 SQL Server 时,您可以自定义数据和日志目录的路径和模式。例如,如果要将数据库和日志文件存储在具有更多存储的不同目录中,请配置自定义路径。

重要

如果您更改了数据或日志路径并重新运行 playbook,之前使用的目录及其所有内容都会保留在原始路径中。只有新数据库和日志保存在新位置。

表 17.1. 数据和日志目录的 SQL Server 默认设置
类型目录模式所有者Group

data

/var/opt/mssql/data/

[a]

mssql

mssql

日志

/var/opt/mssql/los/

[a]

mssql

mssql

[a] 如果目录存在,则角色会保留模式。如果该目录不存在,该角色在创建目录时应用受管节点上的默认 umask

先决条件

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

步骤

  1. 将您的敏感变量存储在加密文件中:

    1. 创建密码库:

      $ ansible-vault create vault.yml
      New Vault password: <vault_password>
      Confirm New Vault password: <vault_password>
    2. ansible-vault create 命令打开编辑器后,以 < key> : < value> 格式输入 敏感数据:

      sa_pwd: <sa_password>
    3. 保存更改,并关闭编辑器。Ansible 加密 vault 中的数据。
  2. 编辑现有的 playbook 文件,如 ~/playbook.yml,并添加 storage 和 log 相关的变量:

    ---
    - name: Installing and configuring Microsoft SQL Server
      hosts: managed-node-01.example.com
      vars_files:
        - vault.yml
      tasks:
        - name: SQL Server with custom storage paths
          ansible.builtin.include_role:
            name: 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: 2022
            mssql_password: "{{ sa_pwd  }}"
            mssql_edition: Developer
            mssql_tcp_port: 1433
            mssql_manage_firewall: true
    
            mssql_datadir: /var/lib/mssql/
            mssql_datadir_mode: '0700'
            mssql_logdir: /var/log/mssql/
            mssql_logdir_mode: '0700'

    示例 playbook 中指定的设置包括:

    mssql_datadir_mode and mssql_logdir_mode
    设置权限模式。以单引号为单位指定值,以确保角色以字符串形式解析值,而不是数值。

    有关 playbook 中使用的所有变量的详情,请查看控制节点上的 /usr/share/ansible/roles/microsoft.sql-server/README.md 文件。

  3. 验证 playbook 语法:

    $ ansible-playbook --ask-vault-pass --syntax-check ~/playbook.yml

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

  4. 运行 playbook:

    $ ansible-playbook --ask-vault-pass ~/playbook.yml

验证

  1. 显示数据目录的模式:

    $ ansible managed-node-01.example.com -m command -a 'ls -ld /var/lib/mssql/'
    drwx------. 12 mssql mssql 4096 Jul  3 13:53 /var/lib/mssql/
  2. 显示日志目录的模式:

    $ ansible managed-node-01.example.com -m command -a 'ls -ld /var/log/mssql/'
    drwx------. 12 mssql mssql 4096 Jul  3 13:53 /var/log/mssql/

其他资源

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

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.