Модуль community.general.mssql_script – Выполнение скриптов SQL в базе данных MSSQL
Примечание
Этот модуль является частью коллекции community.general (версия 9.5.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.general. Для использования этого модуля требуются дополнительные компоненты, см. Требования для получения подробной информации.
Для использования в playbook, укажите: community.general.mssql_script.
Новое в community.general 4.0.0
Краткое описание
- Выполнение скриптов SQL в базе данных MSSQL.
Требования
Ниже указаны требования, необходимые на хосте, который выполняет этот модуль.
- pymssql
Параметры
Параметр | Комментарии |
|---|---|
login_host строка / обязательно | Хост, на котором работает база данных. |
login_password строка | Пароль, используемый для аутентификации. |
login_port целое число | Порт сервера MSSQL. Также необходимо определить Значение по умолчанию: |
login_user строка | Имя пользователя, используемое для аутентификации. |
name псевдонимы: db строка | База данных, для которой выполняется скрипт. Значение по умолчанию: |
output строка | С Формат вывода
Варианты:
|
params словарь | Параметры, передаваемые в скрипт в качестве параметров SQL. (Запрос |
script строка / обязательно | SQL-скрипт для выполнения. Скрипт может содержать несколько операторов SQL. Несколько пакетов могут быть разделены командой Каждый пакет должен возвращать как минимум один результирующий набор. |
transaction логическое добавлено в community.general 8.4.0 | Если запрашивается транзакционный режим, запустите транзакцию и подтвердите изменения только в случае успешного выполнения скрипта. В противном случае откатите транзакцию. Если транзакционный режим не запрашивается (по умолчанию), изменения подтверждаются автоматически. Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: частичная Скрипт не будет выполнен в режиме проверки. | Может работать в |
diff_mode | Поддержка: отсутствует | В режиме diff будет возвращать подробную информацию о том, что изменилось (или, возможно, нуждается в изменении в |
Примечания
Примечание
- Требуется пакет Python pymssql на удаленном хосте. Для Ubuntu это так же просто, как
pip install pymssql(См. ansible.builtin.pip.)
Примеры
- name: Check DB connection
community.general.mssql_script:
login_user: "{{ mssql_login_user }}"
login_password: "{{ mssql_login_password }}"
login_host: "{{ mssql_host }}"
login_port: "{{ mssql_port }}"
db: master
script: "SELECT 1"
- name: Query with parameter
community.general.mssql_script:
login_user: "{{ mssql_login_user }}"
login_password: "{{ mssql_login_password }}"
login_host: "{{ mssql_host }}"
login_port: "{{ mssql_port }}"
script: |
SELECT name, state_desc FROM sys.databases WHERE name = %(dbname)s
params:
dbname: msdb
register: result_params
- assert:
that:
- result_params.query_results[0][0][0][0] == 'msdb'
- result_params.query_results[0][0][0][1] == 'ONLINE'
- name: Query within a transaction
community.general.mssql_script:
login_user: "{{ mssql_login_user }}"
login_password: "{{ mssql_login_password }}"
login_host: "{{ mssql_host }}"
login_port: "{{ mssql_port }}"
script: |
UPDATE sys.SomeTable SET desc = 'some_table_desc' WHERE name = %(dbname)s
UPDATE sys.AnotherTable SET desc = 'another_table_desc' WHERE name = %(dbname)s
transaction: true
params:
dbname: msdb
- name: two batches with default output
community.general.mssql_script:
login_user: "{{ mssql_login_user }}"
login_password: "{{ mssql_login_password }}"
login_host: "{{ mssql_host }}"
login_port: "{{ mssql_port }}"
script: |
SELECT 'Batch 0 - Select 0'
SELECT 'Batch 0 - Select 1'
GO
SELECT 'Batch 1 - Select 0'
register: result_batches
- assert:
that:
- result_batches.query_results | length == 2 # two batch results
- result_batches.query_results[0] | length == 2 # two selects in first batch
- result_batches.query_results[0][0] | length == 1 # one row in first select
- result_batches.query_results[0][0][0] | length == 1 # one column in first row
- result_batches.query_results[0][0][0][0] == 'Batch 0 - Select 0' # each row contains a list of values.
- name: two batches with dict output
community.general.mssql_script:
login_user: "{{ mssql_login_user }}"
login_password: "{{ mssql_login_password }}"
login_host: "{{ mssql_host }}"
login_port: "{{ mssql_port }}"
output: dict
script: |
SELECT 'Batch 0 - Select 0' as b0s0
SELECT 'Batch 0 - Select 1' as b0s1
GO
SELECT 'Batch 1 - Select 0' as b1s0
register: result_batches_dict
- assert:
that:
- result_batches_dict.query_results_dict | length == 2 # two batch results
- result_batches_dict.query_results_dict[0] | length == 2 # two selects in first batch
- result_batches_dict.query_results_dict[0][0] | length == 1 # one row in first select
- result_batches_dict.query_results_dict[0][0][0]['b0s0'] == 'Batch 0 - Select 0' # column 'b0s0' of first row
Значения возврата
Общие значения возврата документированы здесь, следующие — поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
query_results список / элементы=список | Список партий (запросы, разделенные ключевым словом Возвращается: успех и Пример: |
|
queries список / элементы=список |
Список наборов результатов каждого запроса. Если запрос не возвращает результатов, результаты этого и всех последующих запросов не будут включены в вывод. Используйте ключевое слово Возвращается: успех |
|
rows список / элементы=список |
Список строк, возвращенных запросом. Возвращается: успех |
|
column_value список / элементы=строка |
Список значений столбцов. Любой нестандартный тип JSON преобразуется в строку. Возвращается: успех, если вывод по умолчанию Пример: |
query_results_dict список / элементы=список | Список партий (запросы, разделенные ключевым словом Возвращается: успех и Пример: |
|
queries список / элементы=список |
Список наборов результатов каждого запроса. Если запрос не возвращает результатов, результаты этого и всех последующих запросов не будут включены в вывод. Используйте ключевое слово ‘GO’ для разделения запросов. Возвращается: успех |
|
rows список / элементы=список |
Список строк, возвращенных запросом. Возвращается: успех |
|
column_dict словарь |
Словарь названий и значений столбцов. Любой нестандартный тип JSON преобразуется в строку. Возвращается: успех, если вывод в виде словаря Пример: |
Ссылки на сборку
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/mssql_script_module.html