我正在尝试为机器人框架创建一个可操作的剧本。从外观上看,REST不能用于创建机器人,但它可以从Azure https://learn.microsoft.com/en-us/azure/bot-service/bot-builder-tools-az-cli?view=azure-bot-service-3.0中获得。
是否有一种方法可以从Ansible调用Azure函数,因为create资源模块将无法处理它?
发布于 2018-07-13 05:09:18
您可以使用Ansible shell模块调用Azure和其他命令,就好像您正在从命令行中工作一样,然后捕获Ansible中的输出,以便在剧本中下游使用。
我不和Azure一起工作,但是我和AWS一起工作。下面是一个在Ansible内部使用AWS并捕获输出以便在下一个任务中使用的示例。
---
- name: Create / Delete IAM user with keys
hosts: localhost
connection: local
vars:
username: foo
tasks:
- name: Create user with keys
iam:
iam_type: user
name: "{{ username }}"
state: present
access_key_state: create
key_count: 2
- name: Get all the access keys
shell: aws iam list-access-keys --user-name {{ username }} --query 'AccessKeyMetadata[*].AccessKeyId'
register: access_key_list
- name: Delete each key
shell: aws iam delete-access-key --access-key-id {{ item }} --user-name {{ username }}
loop: "{{ access_key_list.stdout | from_json }}"
- name: Delete user
iam_user:
name: "{{ username }}"
state: absent注意,关于第二个任务,我们在变量access_key_list中注册命令输出。然后,您可以将该变量的内容转换为JSON,并在以后的任务中使用它。
由于命令输出以所有形式出现,所以可以使用debug模块查看变量,以便决定如何处理它。
- name: Output variable contents
debug:
msg: "{{ access_key_list }}"发布于 2019-05-16 10:07:28
由于注释不支持格式设置,下面是提示:
我像这样使用>来提高它的可读性。
---
- name: RENAME {{ DB_DATABASE_NAME }} DATABASE on {{ DB_SRC_SQLSERVER_NAME }} SQLSERVER to {{ DB_DATABASE_NEW_NAME }} DATABASE
command: >
az sql db rename
--resource-group "{{ DB_RESOURCEGROUP_NAME }}"
--server "{{ DB_SQLSERVER_NAME }}"
--name "{{ DB_DATABASE_NAME }}"
--new-name "{{ DB_DATABASE_NEW_NAME }}"https://stackoverflow.com/questions/51308875
复制相似问题