Veritas InfoScale™ Installation, Upgrade, and Configuration Using Ansible - Linux

Last Published:
Product(s): InfoScale & Storage Foundation (8.0.2, 8.0, 7.4.3, 7.4.2, 7.4.1)
Platform: Linux

Ansible modules for configuring features in InfoScale

Use the following Ansible modules in your playbooks to perform feature configuration-related operations. Refer to the following table for a list of modules, along with a sample playbook, used for each of the operations:

Table: Feature configuration-related keywords

Operation

Required modules

Sample playbook

Configuring a Cluster File System (CFS)

  • site_facters

  • cfsresource

Sample playbook - YAML

---
- hosts: cpicluster11  
  gather_facts: false  
  any_errors_fatal: true  
  tasks:  
  - name: Facters    
    veritas_infoscale:     
     module: site_facters 
     release_matrix_path: <URL>   
     register: facts  
  - name: CFS Resource    
     veritas_infoscale:     
     module: cfsresource     
     state: present     
     sgname: testsg1     
     dgname: testdg5     
     volname: testvol1     
     mnt: /testvol1
     seednode: objstorer820-1-vm17        
     facters: "{{ ansible_play_hosts_all 
|map('extract', hostvars,['facts','infoscale_facts'])
| select()|list }}"

Sample playbook - JSON

[ 
   { 
      "hosts": "cpicluster11", 
      "gather_facts": false, 
      "any_errors_fatal": true,
      "tasks": [ 
         { 
            "name": "Facters",
            "veritas_infoscale": { 
               "module": "site_facters",
               "release_matrix_path": "<URL>"
            }, 
            "register": "facts" 
         }, 
         { 
            "name": "CFS Resource", 
            "veritas_infoscale": { 
               "module": "cfsresource", 
               "state": "present", 
               "sgname": "testsg1", 
               "dgname": "testdg5", 
               "volname": "testvol1", 
               "mnt": "/testvol1", 
               "seednode": "objstorer820-1-vm17", 
               "facters": "{{ ansible_play_hosts_all 
|map('extract', hostvars, ['facts','infoscale_facts'])
| select()|list }}" 
            } 
         } 
      ] 
   } 
] 

Creating a disk group volume

  • site_facters

  • vxvm_dgvolfs

Sample playbook - YAML

---
- hosts: cluster2
  gather_facts: false
  any_errors_fatal: true
  tasks:
  - name: Init disks
    veritas_infoscale:
     module: DiskInit
     init:
      initdisks: True
     disks: [ 'disk1', 'disk2', 'disk3' ]
    register: disk_info
  - name: Facters
    veritas_infoscale:
     module: site_facters
    register: facts
  - name: Create DG, Volume, FS
    veritas_infoscale:
     module: vxvm_dgvolfs
     state: present
     dg_info:
     - dgname: custappdg
       dgtype: shared
       disks:
       - 10-132-1-56_xen-vd0_1
       - 10-132-1-56_xen-vd0_2
       - 10-132-0-55_xen-vd0_1
       - 10-132-0-55_xen-vd0_2
       fss: 1
       seednode: ip-10-132-0-55
       taginfo:
       volinfo:
       - - custappvol
         - 9.00g
         - 'layout=mirror-stripe nstripe=2 nmirrors=2'
     facters: "{{ ansible_play_hosts_all  
     |map('extract', hostvars, 
['facts','infoscale_facts'])| select()|list }}"

Sample playbook - JSON

[
  {
    "hosts": "cluster2",
    "gather_facts": false,
    "any_errors_fatal": true,
    "tasks": [
      {
        "name": "Init disks",
        "veritas_infoscale": {
          "module": "DiskInit",
          "init": {
            "initdisks": true
          },
          "disks": [
            "disk1",
            "disk2",
            "disk3"
          ]
        },
        "register": "disk_info"
      },
      {
        "name": "Facters",
        "veritas_infoscale": {
          "module": "site_facters"
        },
        "register": "facts"
      },
      {
        "name": "Create DG, Volume, FS",
        "veritas_infoscale": {
          "module": "vxvm_dgvolfs",
          "state": "present",
          "dg_info": [
            {
              "dgname": "custappdg",
              "dgtype": "shared",
              "disks": [
                "10-132-1-56_xen-vd0_1",
                "10-132-1-56_xen-vd0_2",
                "10-132-0-55_xen-vd0_1",
                "10-132-0-55_xen-vd0_2"
              ],
              "fss": 1,
              "seednode": "ip-10-132-0-55",
              "taginfo": null,
              "volinfo": [
                [
                  "custappvol",
                  "9.00g",
                  "layout=mirror-stripe nstripe=2 nmirrors=2"
                ]
              ]
            }
          ],
          "facters": "{{ ansible_play_hosts_all  
          |map('extract', hostvars, 
['facts','infoscale_facts'])| select()|list }}"
        }
      }
    ]
  }
]

Configuring a File System (FS) resource

  • site_facters

  • fsreource

Sample playbook - YAML

---
- hosts: cpicluster10
  gather_facts: false
  any_errors_fatal: true
  tasks:
  - name: Facters
    veritas_infoscale:
     module: site_facters
     release_matrix_path: <URL>
    register: facts
  - name: Create FS resource
    veritas_infoscale:
     module: fsresource
     state: present
     sgname: testdgsg5
     dgname: testdg5
     volname: testvol5
     mnt: /testvol5
     dgresname: dgres5
     volresname: volres5
     mntresname: mntres5
     sgtype: Parallel
     facters: "{{ ansible_play_hosts_all 
     |map('extract', hostvars, 
['facts','infoscale_facts'])| select()|list }}"
 

Sample playbook - JSON

[
  {
    "hosts": "cpicluster10",
    "gather_facts": false,
    "tasks": [
      {
        "name": "Facters",
        "veritas_infoscale": {
          "module": "site_facters"
        },
        "register": "facts"
      },
      {
        "name": "Create FS resource",
        "veritas_infoscale": {
          "module": "fsresource",
          "state": "present",
          "sgname": "testdgsg5",
          "dgname": "testdg5",
          "volname": "testvol5",
          "mnt": "/testvol5",
          "dgresname": "dgres5",
          "volresname": "volres5",
          "mntresname": "mntres5",
          "sgtype": "Parallel",
          "facters": "{{ ansible_play_hosts_all 
          |map('extract', hostvars, 
['facts','infoscale_facts'])| select()|list }}"
        }
      }
    ]
  }
]

Resize FS

Sample playbook - YAML

  • site_facters

  • resize_volume

---
- hosts: mycluster
  gather_facts: False
  any_errors_fatal: true
  tasks:
  - name: Facters
    veritas_infoscale:
     module: site_facters
     release_matrix_path: <URL>
    register: facts
  - name: Resize volume
    veritas_infoscale:
     module: resize_volume
     size: '5084m'
     operation: 'growto'
     dgname: ''
     volname: ''
     mountpoint: '/mnt1'
     state: present
     seednode:<one of the nodes in the cluster>
     facters: "{{ ansible_play_hosts_all 
|map('extract', hostvars, ['facts','infoscale_facts'])
| select()|list }}"

Sample playbook - JSON

[ 
   {
      "hosts": "mycluster", 
      "gather_facts": false, 
      "any_errors_fatal": true, 
      "tasks": [ 
         { 
            "name": "Facters", 
            "veritas_infoscale": { 
               "module": "site_facters", 
               "release_matrix_path": "<URL>", 
               },
               "register": "facts"             
         }, 
         { 
            "name": "Resize volume", 
            "veritas_infoscale": { 
               "module": "resize_volume", 
               "size": "5084m", 
               "operation": "growto", 
               "dgname": "", 
               "volname": "", 
               "mountpoint": "/mnt1", 
               "state": "present", 
               "seednode": "<one of the nodes in the cluster>", 
               "facters": "{{ ansible_play_hosts_all 
|map('extract', hostvars, ['facts','infoscale_facts'])
| select()|list }}" 
            } 
         } 
      ] 
   } 
] 

Configuring a Veritas Volume Replicator (VVR) or Cluster Volume Replication (CVR)

  • site_facters

  • vvrresource

Sample playbook - YAML

---
- hosts: <ansible host group>
  gather_facts: False
  tasks:
   - name: Facters
     veritas_infoscale:
      module: site_facters
      release_matrix_path: <URL>
     register: facts
   - name: VVR/CVR Resource
     veritas_infoscale:
      module: vvrresource
      seednode: <hostname>
      primaryvip: xx.xx.xx.xx
      secondaryvip: xx.xx.xx.xx
      dgname: testdg1
      datavolname: testvol
      srlvolname: srlvol1
      rvgname: rvg_vvrtest1
      createsecondaryonly: 1
      createprimaryonly: 0
      start_replication: 0
      agentinfo:
        rvg_sg_name: custom_RVG
        primary:
            clusterlist:
                - mycluster_47
                - mycluster_u
            networkhosts:
                - xx.xx.xx.xx
            nic: eth0
            netmask: 255.255.240.0
            mountpoint_info:
                - volname: testvol
                  mountname: /new_pri
                  mount_res_name: custom_mount_new
                  requires_res: ['']
        secondary:
            nic: ens192
            netmask: 255.255.240.0
            mountpoint_info:
                - volname: testvol
                  mountname: /new_sec
                  mount_res_name: custom_mount_new
                  requires_res: ['']
            clusterlist:
                - mycluster_47
                - mycluster_u
            networkhosts:
                - xx.xx.xx.xx
        rvg_res_name : null
        mount_sg_name : null
        mount_res_name : null
        datadg_res_name : null
        ip_res_name : null
        nic_res_name : null
        awsip_res_name : null
        rvgprimary_res_name : null
        vvrshare_res_name : null
        logownergrp_sg_name : null
        logownerip_res_name : null
        logowner_res_name : null
        awsip_logowner_res_name : null
        logownernic_res_name : null
      state: present
      facters: "{{ ansible_play_hosts_all |
map('extract', hostvars, ['facts','infoscale_facts'])
| select()|list }}"

Sample playbook - JSON

[
  {
    "hosts": "<ansible host group>",
    "gather_facts": false,
    "tasks": [
      {
        "name": "Facters",
        "veritas_infoscale": {
          "module": "site_facters",
          "release_matrix_path": "<URL>"
        },
        "register": "facts"
      },
      {
        "name": "VVR/CVR Resource",
        "veritas_infoscale": {
          "module": "vvrresource",
          "seednode": "<hostname>",
          "primaryvip": "xx.xx.xx.xx",
          "secondaryvip": "xx.xx.xx.xx",
          "dgname": "testdg1",
          "datavolname": "testvol",
          "srlvolname": "srlvol1",
          "rvgname": "rvg_vvrtest1",
          "createsecondaryonly": 1,
          "createprimaryonly": 0,
          "start_replication": 0,
          "agentinfo": {
            "rvg_sg_name": "custom_RVG",
            "primary": {
              "clusterlist": [
                "mycluster_47",
                "mycluster_u"
              ],
              "networkhosts": [
                "xx.xx.xx.xx"
              ],
              "nic": "eth0",
              "netmask": "255.255.240.0",
              "mountpoint_info": [
                {
                  "volname": "testvol",
                  "mountname": "/new_pri",
                  "mount_res_name": "custom_mount_new",
                  "requires_res": [
                    ""
                  ]
                }
              ]
            },
            "secondary": {
              "nic": "ens192",
              "netmask": "255.255.240.0",
              "mountpoint_info": [
                {
                  "volname": "testvol",
                  "mountname": "/new_sec",
                  "mount_res_name": "custom_mount_new",
                  "requires_res": [
                    ""
                  ]
                }
              ],
              "clusterlist": [
                "mycluster_47",
                "mycluster_u"
              ],
              "networkhosts": [
                "xx.xx.xx.xx"
              ]
            },
            "rvg_res_name": null,
            "mount_sg_name": null,
            "mount_res_name": null,
            "datadg_res_name": null,
            "ip_res_name": null,
            "nic_res_name": null,
            "awsip_res_name": null,
            "rvgprimary_res_name": null,
            "vvrshare_res_name": null,
            "logownergrp_sg_name": null,
            "logownerip_res_name": null,
            "logowner_res_name": null,
            "awsip_logowner_res_name": null,
            "logownernic_res_name": null
          },
          "state": "present",
          "facters": "{{ ansible_play_hosts_all 
           | map('extract', hostvars, 
['facts','infoscale_facts']) | select()|list }}"
        }
      }
    ]
  }
]

Adding nodes

  • site_facters

  • add_node

Sample playbook - YAML

---
- hosts: cpicluster11 
  gather_facts: false 
  any_errors_fatal: true 
  tasks: 
  - name: Facters   
    veritas_infoscale:    
     module: site_facters
     release_matrix_path: <URL>   
    register: facts 
  - name: Add/Del node   
    veritas_infoscale:    
     module: add_node    
     state: present    
     clusternode: dl380g10-kvm-12-03    
     add_del_nodes: ['dl380g10-kvm-12-56' ,
 'dl380g10-kvm-12-57' ]    
     cluster_id: 34321    
     cluster_uuid: c7c2d65e-058f-11e8-a32c-c094107f3b61
     facters: "{{ ansible_play_hosts_all 
|map('extract', hostvars, ['facts','infoscale_facts'])
| select()|list }}"

Sample playbook - JSON

[ 
   { 
      "hosts": "cpicluster11", 
      "gather_facts": false, 
      "any_errors_fatal": true, 
      "tasks": [ 
         { 
            "name": "Facters", 
            "veritas_infoscale": { 
               "module": "site_facters", 
               "release_matrix_path": "<URL>",
              },
               "register": "facts"
         }, 
         { 
            "name": "Add/Del node", 
            "veritas_infoscale": { 
               "module": "add_node", 
               "state": "present", 
               "clusternode": "dl380g10-kvm-12-03", 
               "add_del_nodes": [ 
                  "dl380g10-kvm-12-56", 
                  "dl380g10-kvm-12-57" 
               ], 
               "cluster_id": 34321, 
               "cluster_uuid":
               "c7c2d65e-058f-11e8-a32c-c094107f3b61", 
               "facters": "{{ ansible_play_hosts_all 
|map('extract', hostvars, ['facts','infoscale_facts'])
| select()|list }}" 
            } 
         } 
      ] 
   } 
] 

Deleting nodes

  • site_facters

  • add_node

Sample playbook - YAML

---
- hosts: cpicluster11 
  gather_facts: false 
  any_errors_fatal: true 
  tasks: 
  - name: Facters   
    veritas_infoscale:    
     module: site_facters 
     release_matrix_path: <URL>  
    register: facts 
  - name: Add/Del node   
    veritas_infoscale:    
     module: add_node    
     state: absent    
     clusternode: dl380g10-kvm-12-03    
     add_del_nodes: ['dl380g10-kvm-12-56' ,
 'dl380g10-kvm-12-57' ]    
     cluster_id: 34321    
     cluster_uuid: c7c2d65e-058f-11e8-a32c-c094107f3b61
     facters: "{{ ansible_play_hosts_all 
|map('extract', hostvars, ['facts','infoscale_facts'])
| select()|list }}"

Sample playbook - JSON

[
   { 
      "hosts": "cpicluster11", 
      "gather_facts": false, 
      "any_errors_fatal": true, 
      "tasks": [ 
         { 
            "name": "Facters", 
            "veritas_infoscale": { 
               "module": "site_facters", 
               "release_matrix_path": "<URL>", 
               },   
               "register": "facts"        
         }, 
         { 
            "name": "Add/Del node", 
            "veritas_infoscale": { 
               "module": "add_node", 
               "state": "absent", 
               "clusternode": "dl380g10-kvm-12-03", 
               "add_del_nodes": [ 
                  "dl380g10-kvm-12-56", 
                  "dl380g10-kvm-12-57" 
               ], 
               "cluster_id": 34321, 
               "cluster_uuid":
               "c7c2d65e-058f-11e8-a32c-c094107f3b61", 
               "facters": "{{ ansible_play_hosts_all 
|map('extract', hostvars, ['facts','infoscale_facts'])
| select()|list }}" 
            } 
         } 
      ] 
   } 
] 

Configure VIP

  • site_facters

  • VipConfig

Sample playbook - YAML

--- 
- hosts: <ansible host group> 
  gather_facts: false 
  any_errors_fatal: true 
  tasks: 
  - name: Facters 
    veritas_infoscale: 
     module: site_facters
     release_matrix_path: <URL> 
    register: facts 
  - name:  Configure VIP 
    veritas_infoscale: 
     module: VipConfig 
     nic: ens3 
     vip: 'xx.xx.xx.xx'
     netmask: 'xxx.xxx.xxx.xxx' 
     facters: "{{ ansible_play_hosts_all
|map('extract', hostvars, ['facts','infoscale_facts'])
| select()|list }}"

Sample playbook - JSON

[ 
  { 
    "hosts": "node_vip", 
    "gather_facts": false, 
    "any_errors_fatal": true,
    "tasks": [ 
      { 
        "name": "Facters", 
        "veritas_infoscale": { 
          "module": "site_facters",
          "release_matrix_path": "<URL>" 
        }, 
        "register": "facts"
      }, 
      { 
        "name": "Configure VIP", 
        "veritas_infoscale": { 
          "module": "VipConfig", 
          "nic": "ens3", 
          "vip": " xx.xx.xx.xx ", 
          "netmask": "xxx.xxx.xxx.xxx ",
          "facters": "{{ ansible_play_hosts_all 
|map('extract', hostvars, ['facts','infoscale_facts'])
| select()|list }}" 
        } 
      } 
    ] 
  } 
]

Configure Secure Cluster

  • site facters

  • SecureCluster

Sample playbook - YAML

--- 
- hosts: <ansible host group> 
  gather_facts: false 
  any_errors_fatal: true 
  tasks:
  - name: Facters
    veritas_infoscale: 
     module: site_facters 
    register: facts 
  - name:  Secure Cluster 
    veritas_infoscale: 
     module: SecureCluster 
     systems: [dl380g10-12-kvm-24, dl380g10-12-kvm-49] 
     cluster_id:
     cluster_name: clust_cpi9 
     seednode: dl380g10-12-kvm-49 
     state: present      
     fips: 0 
     read_access: 0 
     usergroups: 
     facters: "{{ ansible_play_hosts_all 
|map('extract', hostvars, ['facts','infoscale_facts'])
| select()|list }}" 

 
  

Sample playbook - JSON

[ 
  { 
    "hosts": "<ansible host group>", 
    "gather_facts": false, 
    "any_errors_fatal": true,
    "tasks": [ 
      { 
        "name": "Facters", 
        "veritas_infoscale": { 
          "module": "site_facters" 
        }, 
        "register": "facts" 
      }, 
      { 
        "name": "Secure Cluster", 
        "veritas_infoscale": { 
          "module": "SecureCluster", 
          "systems": [ 
            "dl380g10-12-kvm-24", 
            "dl380g1012-kvm-49" 
          ],
          "cluster_id": null, 
          "cluster_name": "clust_cpi9", 
          "seednode": "dl380g10-12-kvm-49", 
          "state": "present", 
          "fips": 0, 
          "read_access": 0,
          "usergroups": null, 
          "facters": "{{ ansible_play_hosts_all
|map('extract', hostvars, ['facts','infoscale_facts'])
| select()|list }}" 
        } 
      } 
    ] 
  } 
]       

Configure GCO

  • site_facters

  • gco_config

Sample playbook - YAML

---
- hosts: <ansible host group>  
  gather_facts: False  
  any_errors_fatal: true  
  tasks:  
  - name: Facters    
    veritas_infoscale:     
    module: site_facters 
    release_matrix_path: <URL>   
    register: facts  
  - name: GCO configuration    
    veritas_infoscale:     
     module: gco_config     
     primary:      
      prefix: ''      
      nic: {'<primary site hostname>' : 'ens192'}      
      vip: xx.xxx.xxx.xx      
      ipver: 4      
      netmask: xx.xxx.xxx.xx     
     secondary:       
      prefix: ''      
      nic: {'<secondary site hostname>' : 'ens192'}      
      vip: xx.xxx.xxx.xx      
      ipver: 4      
      netmask: xx.xxx.xxx.xx     
     primary_seednode: <primary site hostname>     
     secondary_seednode: <secondary site hostname>     
     state: present     
     extra_args: null     
     facters: "{{ ansible_play_hosts_all 
|map('extract', hostvars, ['facts','infoscale_facts'])
| select()|list }}"

Sample playbook - JSON

[ 
   { 
      "hosts": "<ansible host group>", 
      "gather_facts": false, 
      "any_errors_fatal": true, 
      "tasks": [ 
         { 
            "name": "Facters", 
            "veritas_infoscale": { 
               "module": "site_facters", 
               "release_matrix_path": "<URL>", 
               },   
               "register": "facts"             
         }, 
         { 
            "name": "GCO configuration", 
            "veritas_infoscale": { 
               "module": "gco_config", 
               "primary": { 
                  "prefix": "", 
                  "nic": { 
                     "<primary site hostname>": "ens192" 
                  }, 
                  "vip": "xx.xxx.xxx.xx", 
                  "ipver": 4, 
                  "netmask": "xx.xxx.xxx.xx" 
               }, 
               "secondary": { 
                  "prefix": "", 
                  "nic": { 
                     "<secondary site hostname>": "ens192" 
                  }, 
                  "vip": "xx.xxx.xxx.xx", 
                  "ipver": 4, 
                  "netmask": "xx.xxx.xxx.xx" 
               }, 
               "primary_seednode": "<primary site hostname>", 
               "secondary_seednode": "<secondary site hostname>", 
               "state": "present", 
               "extra_args": null, 
               "facters": "{{ ansible_play_hosts_all 
|map('extract', hostvars, ['facts','infoscale_facts'])
| select()|list }}" 
            } 
         } 
      ] 
   } 
] 

Configure REST server

  • site_facters

  • RestServerConfig

Configure REST server

--- 
- hosts: <any one ansible host from the cluster on which you
  want to configure REST server> 
  gather_facts: false 
  any_errors_fatal: true 
  tasks: 
  - name: Facters 
    veritas_infoscale: 
     module: site_facters 
    register: facts
  - name: Configure REST Server 
    veritas_infoscale: 
     module: RestServerConfig
     REST_server_ip: xx.xx.xx.xx
     REST_server_netmask: xx.xx.xx.xx
     REST_server_nic: eth0
     REST_server_port: '5637' 
     REST_server_username: ldapuser1
     REST_server_ldap_domain: 'example.com'
     REST_server_ldap_ip: xx.xx.xx.xx
     REST_server_key: '/certs/server.key'
     REST_server_cert_file: '/certs/server.crt'
     REST_server_cacert_file: '/certs/serverca.crt'
     REST_server_passphrase: 
     rest_config: enabled_ldap
     reconfig: 
     state: present 
     facters: "{{ ansible_play_hosts_all 
     |map('extract', hostvars, ['facts','infoscale_facts'])
     | select()|list }}" 

Sample Playbook - JSON

[ 
  {
    "hosts": "<any one ansible host from the cluster on 
     which you want to configure REST server>", 
    "gather_facts": false, 
    "any_errors_fatal": true, 
    "tasks": [
      { 
        "name": "Facters", 
        "veritas_infoscale": {
          "module": "site_facters"
        }, 
        "register": "facts" 
      }, 
      { 
        "name": "Configure REST Server", 
        "veritas_infoscale": { 
          "module": "RestServerConfig", 
          "REST_server_ip": "xx.xx.xx.xx", 
          "REST_server_netmask": "xx.xx.xx.xx", 
          "REST_server_nic": "eth0", 
          "REST_server_port": "5637", 
          "rest_config": "enabled_ldap",
          "REST_server_username": "ldapuser1" 
          "REST_server_ldap_domain": "example.com" 
          "REST_server_ldap_ip": "xx.xx.xx.xx" 
          "REST_server_key": "/certs/server.key"
          "REST_server_cert_file": "/certs/server.crt"
          "REST_server_cacert_file": "/certs/serverca.crt"
          "REST_server_passphrase": null
          "reconfig": null, 
          "state": "present", 
          "facters": "{{ ansible_play_hosts_all 
|map('extract', hostvars, ['facts','infoscale_facts'])
| select()|list }}" 
        } 
      } 
    ] 
  } 
] 

Configure CP Server

site facters

CPServerConfig

Sample playbook - YAML

--- 
- hosts: cluster-vip-06
  gather_facts: false
  any_errors_fatal: true
  tasks:
  - name: Facters
    veritas_infoscale:
     module: site_facters
    register: facts
  - name: Configure CP Server
    veritas_infoscale:
     module: CPServerConfig
     cps_db_dir: /etc/VRTScps/db
     cps_name: cps1
     cps_network:
      - vip: [ "xx.xx.xx.xx" ]
        netmask: [ "xx.xx.xx.xx" ]
        port: 443
        systems:
          - hosts: dl380g9-109vip06 
            nic: eth0
     cps_diskgroup: fendg1
     cps_volume: fenvol1
     cps_newdg_disk:
     cps_newvol_volsize:
     cps_delete_database: 1
     cps_delete_config_logs: 1
     reconfig: 
     state: present 
     facters: "{{ ansible_play_hosts_all |map('extract', hostvars, 
['facts','infoscale_facts'])| select()|list }}" 

Sample playbook - JSON

[
  {
    "hosts": "cluster-vip-06",
    "gather_facts": false,
    "any_errors_fatal": true,
    "tasks": [
      {
        "name": "Facters",
        "veritas_infoscale": {
          "module": "site_facters"
        },
        "register": "facts"
      },
      {
        "name": "Configure CP Server",
        "veritas_infoscale": {
          "module": "CPServerConfig",
          "cps_db_dir": "/etc/VRTScps/db",
          "cps_name": "cps1",
          "cps_network": [
            {
              "vip": [
                "xx.xx.xx.xx"
              ],
              "netmask": [
                "xx.xx.xx.xx"
              ],
              "port": 443,
              "systems": [
                {
                  "hosts": "dl380g9-109vip06",
                  "nic": "eth0"
                }
              ]
            }
          ],
          "cps_diskgroup": "fendg1",
          "cps_volume": "fenvol1",
          "cps_newdg_disk": null,
          "cps_newvol_volsize": null,
          "cps_delete_database": 1,
          "cps_delete_config_logs": 1,
          "reconfig": null,
          "state": "present",
          "facters": "{{ ansible_play_hosts_all 
          |map('extract', hostvars, 
			 ['facts','infoscale_facts'])| select()|list }}"
        }
      }
    ]
  }
]

Enable/Disable EO Logging

site facters Logging

Sample Playbook - YAML

---
- hosts: cluster-44-50
  gather_facts: false
  any_errors_fatal: true
  tasks:
  - name: Facters
    veritas_infoscale:
     module: site_facters
    register: facts
  - name:  Logging
    veritas_infoscale:
      module: Logging
      option: off
      facters: "{{ ansible_play_hosts_all |map('extract', hostvars,
['facts','infoscale_facts'])| select()|list }}"

Sample Playbook - JSON
[
  {
    "hosts": "cluster-44-50",
    "gather_facts": false,
    "any_errors_fatal": true,
    "tasks": [
      {
        "name": "Facters",
        "veritas_infoscale": {
          "module": "site_facters"
        },
        "register": "facts"
      },
      {
        "name": "Logging",
        "veritas_infoscale": {
          "module": "Logging",
          "option": "off",
          "facters": "{{ ansible_play_hosts_all 
           |map('extract', hostvars, 
['facts','infoscale_facts'])| select()|list }}"
        }
      }
    ]
  }
]

Setting Tunables

site facter SetTunable

Sample playbook - YAML

---
 - hosts: cluster-vm
  gather_facts: no
  tasks:
  - name: Facters
    veritas_infoscale:
     module: site_facters
    register: facts
  - name: Set Tunables
    veritas_infoscale:
     module: SetTunable
     llt:
     - systems: ['dl380g9-127-vm3', 'dl380g9-127-vm4']
       tunables:
       - "set-flow window: 520"
       - "set-flow highwater: 12000"
     - systems: ['all']
       tunables:
       - "set-flow window: 521"
       - "set-flow highwater: 12001"
     fs:
     - systems: ['dl380g9-127-vm3']
       tunables:
       - /mnt1:
            eo_logging_enable: 1
            max_retention_time: 0
       - global: 
            eo_logging_enable: 0
     - systems: ['all']
       tunables:
       - /mnt1:
            eo_logging_enable: 1
            max_retention_time: 0
       - global:
            eo_logging_enable: 0
     vm:
     - systems: ['all']
       tunables:       
         volraid_rsrtransmax: 1
         voliot_max_open: 32
     facters     : "{{ ansible_play_hosts_all 
     |map('extract', hostvars, 
['facts','infoscale_facts'])| select()|list }}"

Sample playbook - JSON

        [
  {
    "hosts": "cluster-vm",
    "gather_facts": "no",
    "tasks": [
      {
        "name": "Facters",
        "veritas_infoscale": {
          "module": "site_facters"
        },
        "register": "facts"
      },
      {
        "name": "Set Tunables",
        "veritas_infoscale": {
          "module": "SetTunable",
          "llt": [
            {
              "systems": [
                "dl380g9-127-vm3",
                "dl380g9-127-vm4"
              ],
              "tunables": [
                "set-flow window: 520",
                "set-flow highwater: 12000"
              ]
            },
            {
              "systems": [
                "all"
              ],
              "tunables": [
                "set-flow window: 521",
                "set-flow highwater: 12001"
              ]
            }
          ],
          "fs": [
            {
              "systems": [
                "dl380g9-127-vm3"
              ],
              "tunables": [
                {
                  "/mnt1": {
                    "eo_logging_enable": 1,
                    "max_retention_time": 0
                  }
                },
                {
                  "global": {
                    "eo_logging_enable": 0
                  }
                }
              ]
            },
            {
              "systems": [
                "all"
              ],
              "tunables": [
                {
                  "/mnt1": {
                    "eo_logging_enable": 1,
                    "max_retention_time": 0
                  }
                },
                {
                  "global": {
                    "eo_logging_enable": 0
                  }
                }
              ]
            }
          ],
          "vm": [
            {
              "systems": [
                "all"
              ],
              "tunables": {
                "volraid_rsrtransmax": 1,
                "voliot_max_open": 32
              }
            }
          ],
          "facters": "{{ ansible_play_hosts_all 
           |map('extract', hostvars, 
['facts','infoscale_facts'])| select()|list }}"
        }
      }
    ]
  }
]

Setting Route and rules for subnets across AZ on AWS

site facters RouteConfig

Sample playbook - YAML

---
- hosts: cluster2
  gather_facts: false
  any_errors_fatal: true
  tasks:
  - name: Facters
    veritas_infoscale:
     module: site_facters
    register: facts
  - name:  Configure Routes and Rules
    veritas_infoscale:
     module: RouteConfig
     udp_link:
      - system: 'ip-10-0-0-71'
        heartbeat_link:
         - nic: eth1
           ip: xx.xx.xx.xx /24
         - nic: eth2
           ip: xx.xx.xx.xx /24
      - system: 'ip-10-0-10-168'
        heartbeat_link:
         - nic: eth1
           ip: xx.xx.xx.xx /24
         - nic: eth2
           ip: xx.xx.xx.xx/24
     facters : "{{ ansible_play_hosts_all 
|map('extract', hostvars, ['facts','infoscale_facts'])| select()|list }}"

Sample playbook - JSON

[
  {
    "hosts": "cluster2",
    "gather_facts": false,
    "any_errors_fatal": true,
    "tasks": [
      {
        "name": "Facters",
        "veritas_infoscale": {
          "module": "site_facters"
        },
        "register": "facts"
      },
      {
        "name": "Configure Routes and Rules",
        "veritas_infoscale": {
          "module": "RouteConfig",
          "udp_link": [
            {
              "system": "ip-10-0-0-71",
              "heartbeat_link": [
                {
                  "nic": "eth1",
                  "ip": " xx.xx.xx.xx/24"
                },
                {
                  "nic": "eth2",
                  "ip": " xx.xx.xx.xx/24"
                }
              ]
            },
            {
              "system": "ip-10-0-10-168",
              "heartbeat_link": [
                {
                  "nic": "eth1",
                  "ip": " xx.xx.xx.xx/24"
                },
                {
                  "nic": "eth2",
                  "ip": "xx.xx.xx.xx/24"
                }
              ]
            }
          ],
          "facters": "{{ ansible_play_hosts_all  
          |map('extract', hostvars, 
['facts','infoscale_facts'])| select()|list }}"
        }
      }
    ]
  }
]

Add disks to diskgroup

  • site_facters

  • DiskInit

  • adddisks

Sample playbook - YAML

---
- hosts: cluster2
  gather_facts: false
  any_errors_fatal: true
    tasks:
  - name: Init disks
    veritas_infoscale:
     module: DiskInit
     init:
      initdisks: True
      fss: True
     disks: [ 'disk1', 'disk2' ]
    register: disk_info
  - name: Facters
    veritas_infoscale:
     module: site_facters
    register: facts
  - name: Add disks to Diskgroup
    veritas_infoscale:
     module: adddisks
     state: present
     dgname: testdg
     disks:  "{{ disk_info['disks'] }}" 
     facters: "{{ ansible_play_hosts_all 
     | map('extract', hostvars, 
     ['facts','infoscale_facts'])| select()|list }}"

Sample playbook - JSON

[
    {
        "hosts": "cluster2",
        "gather_facts": false,
        "any_errors_fatal": true,        
        },
        "tasks": [
            {
                "name": "Init disks",
                "veritas_infoscale": {
                    "module": "DiskInit",
                    "init": {
                        "initdisks": true,
                        "fss": true
                    },
                    "disks": [
                        "disk1",
                        "disk2"
                    ]
                },
                "register": "disk_info"
            },
            {
                "name": "Facters",
                "veritas_infoscale": {
                    "module": "site_facters"
                },
                "register": "facts"
            },
            {
                "name": "Add disks to Diskgroup",
                "veritas_infoscale": {
                    "module": "adddisks",
                    "state": "present",
                    "dgname": "testdg",
                    "disks": "{{ disk_info['disks'] }}",
                    "facters": "{{ ansible_play_hosts_all 
| map('extract', hostvars, 
['facts','infoscale_facts'])| select()|list }}"
                }
            }
        ]
    }
]

Remove disks from diskgroup

  • site_facters

  • adddisks

Sample playbook - YAML

---
- hosts: cluster2
  gather_facts: false
  any_errors_fatal: true
  tasks:
  - name: Facters
    veritas_infoscale:
     module: site_facters
    register: facts
  - name: Remove disks from Diskgroup
    veritas_infoscale:
     module: adddisks
     state: absent
     dgname: testdg
     disks: ['disk1', 'disk2']
     facters: "{{ ansible_play_hosts_all 
     | map('extract', hostvars, 
     ['facts','infoscale_facts'])| select()|list }}"

Sample playbook - JSON

[
    {
        "hosts": "cluster2",
        "gather_facts": false,
        "any_errors_fatal": true,
        },
        "tasks": [
            {
                "name": "Facters",
                "veritas_infoscale": {
                    "module": "site_facters"
                },
                "register": "facts"
            },
            {
                "name": "Remove disks from Diskgroup",
                "veritas_infoscale": {
                    "module": "adddisks",
                    "state": "absent",
                    "dgname": "testdg",
                    "disks": ["disk1", "disk2"
                    ],
                    "facters": "{{ ansible_play_hosts_all 
| map('extract', hostvars, 
['facts','infoscale_facts'])| select()|list }}"
                }
            }
        ]
    }
]

Change Replication Status

  • site facter

  • change

    _replication

    _state

Sample playbook YAML

---
- hosts: <ansible host group>
  gather_facts: False
  become: yes
  tasks:
  - name: Change replcation state
    veritas_infoscale:
     module: change_replication_state
     newstate: start
     rvg_info: [ {'dg_name': 'checkdg', 
     'rvg_list': ['rvg_test1']} ]
     secondaryvip: "{{ vtas_secondaryvip }}"
     

Sample playbook JSON

[
  {
    "hosts": "<ansible host group>",
    "gather_facts": false,
    "become": "yes",
    "tasks": [
      {
        "name": "Change replication state",
        "veritas_infoscale": {
          "module": "ChangeReplicationState",
          "newstate": "start",
          "rvg_info": [
            {
              "dg_name": "checkdg",
              "rvg_list": [
                "rvg_test1"
              ]
            }
          ],
          "secondaryvip": "{{ vtas_secondaryvip }}",          
         }
      }
    ]
  }
]