Playbook Ansible : créer un Virtual Drive dans une CIMC

Suite à un projet d’automatisation de déploiement de serveurs CISCO nous allons essayer de vous faire partager au fil du temps des Playbooks Ansible (essentiellement sur la partie CIMC dans un premier temps). Le playbook du jour permet la création d’un virtual drive dans une CIMC d’un serveur CISCO C220 M5 .

- hosts: localhost


  vars:
    imc_hostname: ""
    imc_password: ""
    imc_username: "admin"

  tasks:

    - name: Search Disk Size
      community.general.imc_rest:
        hostname: '{{ imc_hostname }}'
        username: '{{ imc_username }}'
        password: '{{ imc_password }}'
        validate_certs: no
        content: |
          <configResolveClass inHierarchical="true" classId="storageLocalDisk"/>
      register: CIMC
    - set_fact:
        ddsize: "{{ CIMC.configResolveClass.children[0].outConfigs.children[0].storageLocalDisk.attributes.coercedSize }}"
    - debug:
        msg: "{{ ddsize }}"

    
    - name: Search dn Storage Controller
      community.general.imc_rest:
        hostname: '{{ imc_hostname }}'
        username: '{{ imc_username }}'
        password: '{{ imc_password }}'
        validate_certs: no
        content: |
          <configResolveClass inHierarchical="true" classId="storageController"/>
      register: StorageController
    - set_fact:
        SearchDnRaid: "{{ StorageController.configResolveClass.children[0].outConfigs.children[0].storageController.attributes.dn }}"
    - debug:
        msg: "{{ SearchDnRaid }}"

    
    - name: Create Virtual Drive
      community.general.imc_rest:
        hostname: '{{ imc_hostname }}'
        username: '{{ imc_username }}'
        password: '{{ imc_password }}'
        validate_certs: no
        content: |
          <configConfMo dn='{{SearchDnRaid}}/virtual-drive-create'> 
          <inConfig> 
          <storageVirtualDriveCreatorUsingUnusedPhysicalDrive virtualDriveName='vdTest' raidLevel='1' size="{{ddsize}}" driveGroup='[1,2]' writePolicy='Write Through' adminState='trigger'/>
          </inConfig>
          </configConfMo>

Dans la task “Search Disk Size” on récupère la taille du premier disque qui nous servira à la création du RAID dans la task “Create Virtual Drive”. La task “Search dn Storage Controller” permet de récupérer le dn du Controller afin de pouvoir la récupérer dans la task “Create Virtual Drive” (si vous avez des Controller différents notamment)

Notre CIMC sans Virtual Drive
dans le Playbook on voit bien la taille des disques remontés et le dn qui seront utiles pour la création du Virtual Drive
Le Virtual Drive est bien créé une fois le Playbook terminé

Quelques lien sur les APi (REST/XML) CISCO IMC  :

Post to Twitter

One thought on “Playbook Ansible : créer un Virtual Drive dans une CIMC”

Leave a Reply

Your email address will not be published. Required fields are marked *

*