Ansible Modules for
Dell EMC PowerScale 1.3.0
Engineering Knowledge Transfer
Agenda
•Introduction
•New Modules
•Enhancements
•Integrated Use cases
Internal Use - Confidential 2 Of 89
Introduction
•Ansible is a popular configuration management software
•Ansible Modules for PowerScale 1.3.0 is an incremental change from
1.2 release
Internal Use - Confidential 3 Of 89
New Modules
•SyncIQ Policies
•SyncIQ Jobs
•SyncIQ Reports
•SyncIQ Target Reports
•SyncIQ Performance Rules
Internal Use - Confidential 4 Of 89
Enhancements
• Gatherfacts Module is enhanced to list the following entities in a PowerScale
Cluster:
• SyncIQ Policies
• SyncIQ Target Cluster Certificates
• SyncIQ Performance Rules
• SyncIQ Reports
• SyncIQ Target Reports
Internal Use - Confidential 5 Of 89
Support matrix
OneFs Version Supported isi_sdk_version
for oneFS version < 9.0.0.0 isi_sdk_8_1_1
for oneFS version >= 9.0.0.0 isi_sdk_9_0_0
Internal Use - Confidential 6 Of 89
Ansible Stack
Ansible Tower Ansible Playbooks
‘Ansible Modules for PowerScale’ Dell EMC
Ansible deliverables
Python SDK for PowerScale
(isi_sdk_8_1_1 / isi_sdk_9_0_0)
OneFS REST API
Additional deliverables:
OneFS • Documentation
PowerScale
Internal Use - Confidential 7 Of 89
Various Module
Operations
Internal Use - Confidential 8 Of 89
Common Parameters (for all modules)
Mandatory/Optio
Parameter name Explanation Default value Comments
nal
onefs_host IP address or FQDN of the Isilon cluster Mandatory --
port_no Port number Optional 8080
Credentials
api_user Username for accessing the REST API Mandatory -- can be
encrypted
using Ansible
vault.
The users
need to have
admin
access to
api_password Password for accessing the REST API Mandatory -- the access
zone
on which
they want to
operate.
Boolean parameter to indicate insecure
verify_ssl Mandatory --
access
Internal Use - Confidential 9 Of 89
SyncIQ Policy
Internal Use - Confidential 10 Of 89
Supported Operations
•Create a SyncIQ Policy.
•Modify a SyncIQ Policy.
•Create a job on SyncIQ Policy.
•Retrieve details of a SyncIQ Policy.
•Delete a SyncIQ Policy.
Internal Use - Confidential 11 Of 89
Parameters …
Parameter name Type Description Mandatory/Option Default value Comments
al
policy_name str Name of the Policy Optional • Mandatory while creating
policy
• Can be used to
modify/delete policy
action str Action on Policy Optional Mandatory while creating
choices: ['copy', 'sync'] policy
description str Description of policy Optional
enabled bool Indicates whether policy is enabled Optional
run_job str • Run job on the policy Optional
• choices:[ 'on-schedule', 'when-
source-modified', 'when-snapshot-
taken']
job_delay int If run_job is set to when-source- Optional
modified, job_delay is the the duration
to wait after a modification is made
before starting a job.
job_delay_unit str • Unit for job_delay Optional seconds
• choices: ['seconds', 'minutes', 'hours',
'days']
Internal Use - Confidential 12 Of 89
Parameters …
Parameter name Type Description Mandatory/Option Default value Comments
al
new_ policy_name str Rename an existing policy Optional
rpo_alert int • Time in second Optional
• If 0 no rpo alert will be sent
• Option modifiable when run_job is
"on-schedule"
rpo_alert_unit str • Unit of rpo_alert Optional minutes
• choices: ['minutes', 'hours', 'days',
'weeks', 'months', 'years']
skip_when_source_unmod bool • If true and schedule is set , the policy Optional
ified will not run if no changes have been
made to the contents of the source
directory since the last job
successfully completed.
• Option modifiable when run_job is
"on_schedule"
snapshot_sync_pattern str The naming pattern that a snapshot Optional
must match to trigger a sync when the
schedule is when-snapshot-taken.
Internal Use - Confidential 13 Of 89
Parameters …
Parameter name Type Description Mandatory/Opti Default Comments
onal value
schedule str • Schedule set when run_policy is 'on-schedule' Optional
• It is isidate format.
• If the format is not proper the api will throw error.
source_cluster dict • Details of source cluster • Optional. • The path to the
{ source directory
source_root_path: str • However, must be
- description: The root directory on the source cluster the source_root absolute, i.e, it
files will be synced from _path is must start with
source_exclude_directories mandatory ‘/ifs’.
- type: list[str] while
- Description: List of path to the directories that should creating a
be excluded while running a policy policy.
source_include_directories
- type: list[str]
- Description: List of path to the directories that should
be included while running a policy
source_network
- type: dict
- Description: Run the policy only on nodes in the
specified subnet and pool
{
pool: 'str',
subnet: 'str'
}
}
Internal Use - Confidential 14 Of 89
Parameters …
Parameter name Type Description Mandatory/Opti Default Comments
onal value
target_cluster dict Details of the target cluster. Mandatory only • All fields are
Sub-options in dictionary: while creating mandatory except
{ policy restrict target
target_host: network.
- type: str
- description: The host IP or FQDN where we want to • target_certificate
replicate the source, _id is not
target_path: supported in
-type: str isi_sdk_8_1_1.
- description: The directory location to have the replicated
source data, • target_certificate
target_certificate_id: _id and target_ce
-type: str rtificate_name ar
- description: The ID of the target cluster certificate being e mutually
used for encryption., exclusive
target_certificate_name:
-type: str
- description: The name of the target cluster certificate being
used for encryption.,
}
Internal Use - Confidential 15 Of 89
Parameters …
Parameter name Type Description Mandatory/Opti Default Comments
onal value
target_snapshots dict Details of snapshots to be created at the target. Optional
{
target_snapshot_archive:
-type: bool
- description: Indicates whether to take snapshot of the
target
target_snapshot_expiration
-type: int
-description: Expiration time of snapshot. Time 0
means no expiration,
exp_time_unit
- type: str
-description: unit of snapshot expiration time.
choices:['years', 'months', 'weeks', 'days']
- Default: years
}
policy_id str The policy ID assigned after creation of sync IQ policy Optional Can be used while
modify/delete syncIQ
policy
Internal Use - Confidential 16 Of 89
Parameters
Parameter name Type Description Mandatory/Opti Default Comments
onal value
job_params dict Parameters required to create job on policy Optional • action is a
{ mandatory
action: parameter in this
type: str, dictionary
description: 'The action to be taken by this job.', • default value for
choices: ['run', 'resync_prep', 'allow_write', wait_for_completio
'allow_write_revert'], n is False
required: True • workers_per_node
source_snapshot: if not set by default
type: str, is 3
description:'An optional snapshot to copy/sync from.'
workers_per_node:
type: int,
description: 'Specifies the desired workers per node.
Only valid for allow_write, and allow_write_revert'
wait_for_completion:
type: bool,
description: 'Specifies if the job should run
synchronously or in async manner'
}
state str The state of the sync policy. Mandatory Choices: [“'present”,
“absent‘’]
Internal Use - Confidential 17 Of 89
Syntax…
Create SyncIQ Policy
Internal Use - Confidential 18 Of 89
Syntax…
Retrieve a SyncIQ Policy Modify a SyncIQ Policy
Internal Use - Confidential 19 Of 89
Syntax…
Rename a SyncIQ Policy Delete a SyncIQ Policy
Internal Use - Confidential 20 Of 89
Syntax…
Create a job on SyncIQ Policy Create a resync-prep job on SyncIQ
Policy
Internal Use - Confidential 21 Of 89
Syntax
Allow writes on target of SyncIQ Disallow writes on target of SyncIQ
Policy Policy
Internal Use - Confidential 22 Of 89
Output
Internal Use - Confidential 23 Of 89
Output
Internal Use - Confidential 24 Of 89
SyncIQ Jobs
Internal Use - Confidential 25 Of 89
Supported Operations
•Get details of SyncIQ job running on SyncIQ policy.
•Modify state of SyncIQ job.
•Cancel a SyncIQ job.
Internal Use - Confidential 26 Of 89
Parameters
Parameter name Type Description Mandatory/Option Default value Comments
al
job_id str The id or name of the policy Mandatory
job_action str The state of the job Optional
• Choices: [‘run', ‘pause’, ‘cancel’] Mandatory for job state
modify / cancel operations.
state str The state of the SyncIQ job after the Mandatory
task is performed
• Choices: [‘present’, ‘absent’]
Internal Use - Confidential 27 Of 89
Syntax – Get SyncIQ Job details
Internal Use - Confidential 28 Of 89
Syntax – Modify state of SyncIQ Jobs
Pause a SyncIQ Job Resume a SyncIQ Job
Internal Use - Confidential 29 Of 89
Syntax - Cancel a SyncIQ Job
Internal Use - Confidential 30 Of 89
Output
Internal Use - Confidential 31 Of 89
SyncIQ Reports
Internal Use - Confidential 32 Of 89
Supported Operations
•Get all SyncIQ Reports.
•Get details of a single SyncIQ Report.
•Get all SyncIQ Sub Reports.
•Get details of a single SyncIQ Sub Report.
Internal Use - Confidential 33 Of 89
Parameters
Parameter name Type Description Mandatory/ Default value Comments
Optional
id str ID of synciq report or target report Optional
name str Name of synciq report or target Optional
report
sub_report_id str ID of synciq sub-report or synciq Optional This parameter needs to be passed
target sub report. along with report id or report name to
fetch the details of a particular sub-
report.
include_sub_reports boolean Flag to include sub report or target Optional False
sub report
state str •State of report Mandatory
•Choices: ['present', 'absent']
Internal Use - Confidential 34 Of 89
Syntax – Get SyncIQ Report
Using report name Using report id
Internal Use - Confidential 35 Of 89
Syntax –Get all SyncIQ Sub Reports
Using report name Using report id
Internal Use - Confidential 36 Of 89
Syntax –Get single SyncIQ Sub Report
Using report name Using report id
Internal Use - Confidential 37 Of 89
Output
Internal Use - Confidential 38 Of 89
Output
Internal Use - Confidential 39 Of 89
Output
Internal Use - Confidential 40 Of 89
SyncIQ Target Reports
Internal Use - Confidential 41 Of 89
Supported Operations
•Get all SyncIQ Target Reports.
•Get details of a single SyncIQ Target Report.
•Get all SyncIQ Target Sub Reports.
•Get details of a single SyncIQ Target Sub Report.
Internal Use - Confidential 42 Of 89
Parameters
Parameter name Type Description Mandatory/ Default value Comments
Optional
id str ID of synciq report or target report Optional
name str Name of synciq report or target Optional
report
sub_report_id str ID of synciq sub-report or synciq Optional This parameter needs to be passed
target sub report. along with report id or report name to
fetch the details of a particular sub-
report.
include_sub_reports boolean Flag to include sub report or target Optional False
sub report
state str •State of report Mandatory
•Choices: ['present', 'absent']
Internal Use - Confidential 43 Of 89
Syntax – Get SyncIQ Target Report
Using report name Using report id
Internal Use - Confidential 44 Of 89
Syntax –Get all SyncIQ Target Sub Reports
Using report name Using report id
Internal Use - Confidential 45 Of 89
Syntax –Get single SyncIQ Target Sub Report
Using report name Using report id
Internal Use - Confidential 46 Of 89
Output
Internal Use - Confidential 47 Of 89
Output
Internal Use - Confidential 48 Of 89
Output
Internal Use - Confidential 49 Of 89
SyncIQ Performance Rules
Internal Use - Confidential 50 Of 89
Supported Operations
•Create a SyncIQ Performance Rule.
•Modify a SyncIQ Performance Rule.
•Retrieve details of a SyncIQ Performance Rule.
•Delete a SyncIQ Performance Rule.
Internal Use - Confidential 51 Of 89
Parameters …
Parameter name Type Description Mandatory/Option Default value Comments
al
rule_type str Type of rule to be applied. Optional Required while creating a
Choices:["bandwidth", "file_count", rule and deleting the rule
"cpu", "worker"]
This cannot be edited
limit int Limit for the type selected Optional Required while creating a
rule and deleting the rule
schedule dict { begin: 'str' Optional • Format
description: At what time the for begin and end is
performance rule begins, hh:mm (24h format hour,
end: 'str and minute)
description: At what time the
performance rule ends', • Required while creating a
days_of_week: 'list' rule and deleting the rule
choices: ['monday', 'tuesday',
'wednesday', 'thursday',
'friday', 'saturday', 'sunday']
}
sync_rule_id str Generated after creation of sync_rule Optional Required when deleting,
modifying or getting details
of the rule
Internal Use - Confidential 52 Of 89
Parameters
Parameter name Type Description Mandatory/Option Default value Comments
al
description str Description of the rule Optional
enabled bool Enable the performance rule Optional Required while creating a
rule and deleting the rule
state str State of the performance rule Mandatory choices: ['present', 'absent']
Internal Use - Confidential 53 Of 89
Syntax Get details of SyncIQ Performance
Rule
Create a SyncIQ Performance
Rule
Modify SyncIQ Performance Rule
Internal Use - Confidential 54 Of 89
Syntax Output
Delete a SyncIQ Performance
Rule
Internal Use - Confidential 55 Of 89
Enhancement: Gather
Facts
Internal Use - Confidential 56 Of 89
Gather Facts Module Enhancement
•In addition to existing subsets (like users, groups, nodes etc.) below mentioned
subset has been added:
–New subset keys for the same are:
• -synciq_performance_rules
• -synciq_policies
• -synciq_jobs
• -synciq_reports
• -synciq_target_reports
• -synciq_target_cluster_certificates
Internal Use - Confidential 57 Of 89
Syntax: Get list of SyncIQ Reports and Target Reports
Internal Use - Confidential 58 Of 89
Output: Gatherfacts module for SyncIQ Reports and Target
Reports
Internal Use - Confidential 59 Of 89
Syntax
Get list of SyncIQ Policies, Performance Rules and Target Cluster
Certificates
Internal Use - Confidential 60 Of 89
Output List of SyncIQ Policies and Target
Cluster Certificates
List of SyncIQ Performance Rules
Internal Use - Confidential 61 Of 89
Integrated Use cases
Internal Use - Confidential 62 Of 89
Operations
F Operation Module
Create a SyncIQ Performance Rule SyncIQ Performance Rules
Create a SyncIQ Policy SyncIQ Policy
Modify SyncIQ Policy SyncIQ Policy
Create a job on SyncIQ Policy SyncIQ Policy
Modify state of SyncIQ Job SyncIQ Job
Modify SyncIQ Performance Rule SyncIQ Performance Rules
Get SyncIQ Target Report SyncIQ Target Reports
Get SyncIQ Report SyncIQ Reports
Delete SyncIQ Policy SyncIQ Policy
Internal Use - Confidential 63 Of 89
Example:
SyncIQ
Performance
Rules
Internal Use - Confidential 64 Of 89
Example:
SyncIQ
Performance
Rules
Policy
(Policy_SP)
Internal Use - Confidential 65 Of 89
Example:
SyncIQ
Performance
Rules
Policy
(Policy_SP)
Jobs
Internal Use - Confidential 66 Of 89
Example: SyncIQ
Performance
Rules
Policy
(Policy_SP)
Jobs
Internal Use - Confidential 67 Of 89
Example: SyncIQ
Performance
Rules
Policy
(Policy_SP)
Jobs Reports
Internal Use - Confidential 68 Of 89
Thank You
Internal Use - Confidential 69 Of 89