avinetworks.aviconfig

已弃用

Ansible Galaxy

⛔️ 已弃用:此仓库不再受支持,请考虑使用 https://github.com/vmware/ansible-collection-alb ,因为 此角色已迁移到 ansible 集合中。

此角色允许用户通过提供 Avi 配置对象的字典来配置 Avi。 此角色按照正确的顺序调用相应的 Avi Ansible 模块作为任务,以确保一致且成功的配置。

需求

  • python >= 2.7
  • avisdk

此角色需要 Ansible 2.2 或更高版本。要求在元数据文件中列出。

在运行此模块之前,请从 pip 安装 avisdk。

pip install avisdk --upgrade

安装

要安装 aviconfig Ansible 模块,请在将要运行 Ansible 的机器上发出以下命令。

ansible-galaxy install avinetworks.aviconfig

有关更多信息,请访问 http://docs.ansible.com/ansible/galaxy.html

角色变量

avi_config

这是用户想要设置的所有 Avi REST 资源的字典。Aviconfig 角色调用 Avi Ansible 模块来配置 Avi Controller 中的这些设置。 例如:

- name: 定义 avi 配置
  set_fact:
    avi_config:
      pool:
        - name: "foo-pool"
          lb_algorithm: LB_ALGORITHM_ROUND_ROBIN
          servers:
            - ip:
                 addr: "42.42.42.42"
                 type: 'V4'
      virtualservice:
        - name: foo
          services:
            - port: 80
          pool_ref: "/api/pool?name=foo-pool"
          vip:
            - ip_address:
                addr: "10.10.10.10"
                type: 'V4'
              vip_id: '1'

- name: Avi 应用程序 | 设置 Foo
  import_role:
    name: avinetworks.aviconfig
  vars:
    avi_config: "{{avi_config}}"

avi_config_file

此变量提供角色读取 Avi 配置对象的位置。如果定义了它,则会从此文件加载变量 avi_config。例如:

- name: Avi 应用程序 | 设置具有写入权限的 VMWare Cloud
  import_role:
    name: avinetworks.aviconfig
  vars:
    avi_config_file: application/config.yml

avi_creds_file

此变量提供 Avi Controller 凭据信息的文件位置。通常,这应该是一个 Ansible 密钥文件。例如:

- name: Avi 应用程序 | 设置具有写入权限的 VMWare Cloud
  import_role:
    name: avinetworks.aviconfig
  vars:
    avi_config_file: application/config.yml
    avi_creds_file: credentials/creds.yml

avi_config_state

这是一个全局覆盖,用于删除 avi_config 目录中列出的所有 Avi REST 对象。这对于创建完整配置后再删除所有对象很有用。

avi_config_state=absent
例如: ansible-playbook site_applications.yml --extra-vars "site_dir=`pwd` avi_config_state=absent"

示例剧本

---
- hosts: localhost
  connection: local
  roles:
    - role: avinetworks.avisdk
  tasks:
    - name: Avi 应用程序 | 设置 foo
      import_role:
        name: avinetworks.aviconfig
      vars:
        avi_config_file: "foo/config.yml"
        avi_creds_file: "vars/creds.yml"

这个示例展示了如何在任务中创建 avi_config 并将其传递给角色。

---
- hosts: localhost
  connection: local
  roles:
    - role: avinetworks.avisdk
  tasks:
    - name: 定义 avi 配置
      set_fact:
        avi_config:
          pool:
            - name: foo-pool
              lb_algorithm: LB_ALGORITHM_ROUND_ROBIN
              servers:
                - ip:
                     addr: 42.42.42.42
                     type: V4
          virtualservice:
            - name: foo
              services:
                - port: 80
              pool_ref: "/api/pool?name=foo-pool"
              vip:
                - ip_address:
                    addr: 10.10.10.10
                    type: V4
                  vip_id: '1'

    - name: Avi 应用程序 | 设置 foo
      import_role:
        name: avinetworks.aviconfig
      vars:
        avi_config: "{{avi_config}}"
        avi_creds_file: "vars/creds.yaml"

还有更多示例位于 https://github.com/avinetworks/devops/tree/master/ansible

许可证

Apache 2.0

作者信息

Gaurav Rastogi

github: grastogi23

[https://www.linkedin.com/in/grrastogi]

安装
ansible-galaxy install avinetworks.aviconfig
许可证
apache-2.0
下载
43.8k
拥有者