f5devcentral.atc_deploy
Ansible角色:F5自动化工具链(ATC)部署声明
该角色将声明部署到您BIG-IP上已安装的自动化工具链服务(AS3、DO、TS)或在您的BIG-IQ上(AS3、DO)。您可以使用此角色向以下BIG-IP或BIG-IQ自动化工具链服务发布声明:应用服务3扩展、声明式入门或遥测流(仅限BIG-IP)。有关这些服务的信息以及示例声明,请访问f5-cloud-docs。
- 注:此角色通过引用的声明来确定使用哪个服务,该声明应包含服务类。 例如,AS3声明将包含一个服务指针,使用键“class”并在json声明文件中值为“AS3” 示例。请确保在声明的开头定义服务指针。
需求
在部署声明之前,必须在BIG-IP或BIG-IQ上安装相应的ATC服务。
角色变量
可用的变量如下所示。有关其默认值,请参见 defaults/main.yml
:
变量 | 必需 | 默认 | 示例 | 信息 |
---|---|---|---|---|
provider | 是 | - | provider: "{{ provider }}" | provider 字典用于本角色中,定义与BIG-IP的连接详细信息,方式与F5模块相同。 |
atc_method | 否 | GET | atc_method: GET | |
atc_declaration | 是 | - | atc_declaration: "{{ lookup('template', 'decl.json') }}" | 与atc_declaration_file 和atc_declaration_url 互斥 |
atc_declaration_file | 是 | - | atc_declaration_file: "files/decl.json" | 与atc_declaration 和atc_declaration_url 互斥 |
atc_declaration_url | 是 | - | atc_declaration_url: "https://testurl/as3.json" | 与atc_declaration 和atc_declaration_file 互斥 |
atc_service | 否 | - | atc_service: AS3 | |
atc_delay | 是 | 30 | atc_delay: 30 | 在检查异步调用是否完成时,重试之间的秒数 |
atc_retries | 是 | 10 | atc_retries: 10 | 角色检查任务完成的次数,如果未完成则失败 |
as3_tenant | 否 | - | as3_tenant: Tenant1 | 从AS3 3.14.0开始,您可以选择使用POST到/declare端点并在URI中指定特定租户(例如 …/declare/tenant1)。这仅更新您指定的租户,即使声明中还有其他租户。这在某些涉及AS3的自动化场景中可能很有用。 |
as3_show | 是 | base | as3_show: base | 您可以使用以下URL查询参数进行POST、GET或DELETE 必需 base 意味着 系统返回最初部署的声明(但秘密如密码短语已加密),full返回填充所有默认架构属性的声明,expanded包括所有URL、base64和其他引用扩展到其最终静态值。 |
as3_showhash | 否 | - | as3_showhash: true | 您可以使用以下URL查询参数进行POST(注意:showHash用于POST自AS3 3.14.0引入,仅在3.14.0及更高版本中有效):这是作为声明中租户的保护机制引入的(之前必须使用单独的GET请求来检索乐观锁)。如果您设置“showHash=true”,结果包括每个租户的optimisticLockKey。尝试没有正确optimisticLockKey更改/更新任何租户将失败。 |
check_teem | 是 | true | check_teem: true | 更新AS3声明以包括用于遥测的Ansible版本。 |
依赖
无。
示例
获取AT声明
- name: 获取AT声明
hosts: bigip
tasks:
- name: ATC GET
include_role:
name: atc_deploy
vars:
atc_method: GET
# 选择服务为AS3、Device或Telemetry
atc_service: AS3
provider:
server: 192.168.1.245
server_port: "443"
user: admin
password: admin
validate_certs: "false"
auth_provider: tmos
- debug: var=atc_GET_status
发布AT声明
- name: 发布AT声明
hosts: bigip
tasks:
- name: ATC POST
include_role:
name: atc_deploy
vars:
atc_method: POST
atc_declaration: "{{ lookup('template', 'decl.json') }}"
# atc_declaration_file: files/as3.json
# atc_declaration_url: "https://testurl/as3.json"
atc_declaration_file: "files/as3.json"
atc_delay: 10
atc_retries: 5
provider:
server: 192.168.1.245
server_port: "443"
user: admin
password: admin
validate_certs: "false"
auth_provider: tmos
# atc_AS3_status, atc_DO_status , atc_TS_status
- debug: var=atc_AS3_status
许可证
Apache
作者信息
该角色由Greg Crosby于2019年创建。
致谢
特别感谢Vinnie Mazza (@vinnie357)提供的ansible剧本示例。