hosts:
localhost
vars:
imc_hostname:
100.83.36.141
imc_password:
imc_username:
admin
StatusDiskJbod:
JBOD
StatusDiskUnconfGood:
unconfigured-good
tasks:
-
name
:
Check Power Status
community.general.imc_rest:
hostname:
'{{ imc_hostname }}'
username:
'{{ imc_username }}'
password:
'{{ imc_password }}'
validate_certs:
no
content:
|
<configResolveClass inHierarchical=
"false"
classId=
"computeRackUnit"
/>
register:
CIMCPower
-
set_fact
:
SrvPwStatus:
"{{ CIMCPower.configResolveClass.children[0].outConfigs.children[0].computeRackUnit.attributes.operPower }} "
-
debug
:
msg:
"{{ SrvPwStatus }}"
failed_when:
'"on" not in SrvPwStatus'
-
name
:
Check IMC uri
uri:
url:
https
:
//
{
{
imc_hostname
}
}
validate_certs:
no
status_code:
200
register:
result
-
debug
:
msg:
"{{result}}"
failed_when:
result.status !=
200
-
name
:
Search Status and ID storageLocalDisk 0 and
1
community.general.imc_rest:
hostname:
'{{ imc_hostname }}'
username:
'{{ imc_username }}'
password:
'{{ imc_password }}'
validate_certs:
no
content:
|
<configResolveClass inHierarchical=
"true"
classId=
"storageLocalDisk"
/>
register:
storageLocalDisk
-
set_fact
:
SearchStatusDisk0:
"{{ storageLocalDisk.configResolveClass.children[0].outConfigs.children[0].storageLocalDisk.attributes.pdState }}"
SearchStatusDisk1:
"{{ storageLocalDisk.configResolveClass.children[0].outConfigs.children[1].storageLocalDisk.attributes.pdState }}"
SearchIdDisk0:
"{{ 'pd-' + storageLocalDisk.configResolveClass.children[0].outConfigs.children[0].storageLocalDisk.attributes.id }}"
SearchIdDisk1:
"{{ 'pd-' + storageLocalDisk.configResolveClass.children[0].outConfigs.children[1].storageLocalDisk.attributes.id }}"
-
debug
:
msg:
-
"{{ SearchStatusDisk0 }}"
-
"{{ SearchStatusDisk1 }}"
-
"{{ SearchIdDisk0 }}"
-
"{{ SearchIdDisk1 }}"
-
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
when:
SearchStatusDisk0 == StatusDiskJbod or SearchStatusDisk1 == StatusDiskJbod
-
set_fact
:
SearchDnRaid:
"{{ StorageController.configResolveClass.children[0].outConfigs.children[0].storageController.attributes.dn }}"
when:
SearchStatusDisk0 == StatusDiskJbod or SearchStatusDisk1 == StatusDiskJbod
-
debug
:
msg:
"{{ SearchDnRaid }}"
when:
SearchStatusDisk0 == StatusDiskJbod or SearchStatusDisk1 == StatusDiskJbod
-
name
:
Configure Disk
0
community.general.imc_rest:
hostname:
'{{ imc_hostname }}'
username:
'{{ imc_username }}'
password:
'{{ imc_password }}'
validate_certs:
no
content:
|
<configConfMo dn=
'{{SearchDnRaid}}/{{ SearchIdDisk0 }}'
>
<inConfig>
<storageLocalDisk adminAction=
'make-{{StatusDiskUnconfGood}}'
></storageLocalDisk>
</inConfig>
</configConfMo>
retries:
3
delay:
1
when:
SearchStatusDisk0 == StatusDiskJbod
-
name
:
Configure Disk
1
community.general.imc_rest:
hostname:
'{{ imc_hostname }}'
username:
'{{ imc_username }}'
password:
'{{ imc_password }}'
validate_certs:
no
content:
|
<configConfMo dn=
'{{SearchDnRaid}}/{{ SearchIdDisk1 }}'
>
<inConfig>
<storageLocalDisk adminAction=
'make-{{StatusDiskUnconfGood}}'
></storageLocalDisk>
</inConfig>
</configConfMo>
retries:
3
when:
SearchStatusDisk1 == StatusDiskJbod