Linux SDC
SDC Host Module for Linux
This Terraform module installs the SDC package on a remote Linux host using the powerflex_sdc_host resource.
Note: VM should have the following packages installed fio sshpass unzip yum-utils wget gcc make
Example Main.tf
main.tf for Ubuntu
terraform {
required_providers {
powerflex = {
version = ">=1.6.0"
source = "registry.terraform.io/dell/powerflex"
}
}
}
module "sdc_host" {
# Here is an example of a source that pulls from the registry
source = "dell/modules/powerflex//modules/sdc_host_linux"
version = "x.x.x" // pull in the latest version like "1.2.0"
remote_host = { // Stores the SSH credentials for connecting to the remote Linux host.
user = "root"
password = "password"
}
sdc_name = "terraform-sdc"// The name of the SDC will default to 'terraform-sdc'
ip="1.2.11.4" //Stores the IP address of the remote Linux host.
versions={
pflex = "4.5.3000.118"
kernel = "5.15.0-1-generic"
}
scini = {
url = "" // leave as empty for autobuild = true
linux_distro = "Ubuntu"
autobuild_scini = true // allow to build scini on destination machine. This may not work on PowerFlex v3.X. Prerequisites here https://www.dell.com/support/kbdoc/en-us/000224134/how-to-on-demand-compilation-of-the-powerflex-sdc-driver
}
sdc_pkg = {
url = "http://example.com/release/SIGNED/EMC-ScaleIO-sdc-4.5-3000.118.Ubuntu.22.04.x86_64.tar"
local_dir = "/tmp"
remote_pkg_name = "emc-sdc-package.tar" // Dont update this, It should be emc-sdc-package.tar
remote_dir = "/tmp" // temp directory on the SDC host
remote_file = "EMC-ScaleIO-sdc-4.5-3000.118.Ubuntu.22.04.x86_64.tar" // name of file once downloaded on to remote should match what is being downloaded from sdc_pkg
use_remote_path = true // Leave this as true
skip_download_sdc = false // Leave this as false
}
mdm_ips = [] // If only attaching to one cluster then leave as empty list [] and the default virtual ips will be picked up. If wanting to attach to more then one cluster, give the mdm ips in a fomat like so provider block eg. ['10.10.10.5,10.10.10.6', '10.10.10.7,10.10.10.8']
}
main.tf for RHEL9
terraform {
required_providers {
powerflex = {
version = ">=1.6.0"
source = "registry.terraform.io/dell/powerflex"
}
}
}
module "sdc_host" {
# Here is an example of a source that pulls from the registry
source = "dell/modules/powerflex//modules/sdc_host_linux"
version = "x.x.x" // pull in the latest version like "1.2.0"
remote_host = { // Stores the SSH credentials for connecting to the remote Linux host.
user = "root"
password = "password"
}
sdc_name = "terraform-sdc"// The name of the SDC will default to 'terraform-sdc'
ip="1.2.11.4" //Stores the IP address of the remote Linux host.
versions={
pflex = "4.5.3000.118"
kernel = "5.15.0-1-generic"
}
scini = {
url = "" // leave as empty for autobuild = true
linux_distro = "RHEL9"
autobuild_scini = true // allow to build scini on destination machine. This may not work on PowerFlex v3.X. Prerequisites here https://www.dell.com/support/kbdoc/en-us/000224134/how-to-on-demand-compilation-of-the-powerflex-sdc-driver
}
sdc_pkg = {
url = "http://example.com/release/SIGNED/EMC-ScaleIO-sdc-4.5-3000.118.Ubuntu.22.04.x86_64.rpm"
local_dir = "/tmp"
remote_pkg_name = "emc-sdc-package.rpm" // Dont update this, It should be emc-sdc-package.rpm
remote_dir = "/tmp" // temp directory on the SDC host
remote_file = "EMC-ScaleIO-sdc-4.5-3000.118.Ubuntu.22.04.x86_64.rpm" // name of file once downloaded on to remote should match what is being downloaded from sdc_pkg
use_remote_path = true // Leave this as true
skip_download_sdc = false // Leave this as false
}
mdm_ips = [] // If only attaching to one cluster then leave as empty list [] and the default virtual ips will be picked up. If wanting to attach to more then one cluster, give the mdm ips in a fomat like so provider block eg. ['10.10.10.5,10.10.10.6', '10.10.10.7,10.10.10.8']
}
Usage
To run this example you need to execute:
$ terraform init
$ terraform apply
After successful operation of above commands, to remove deployment, you need to execute:
terraform destroy
Requirements
| Name | Version |
|---|---|
| powerflex | >=1.6.0 |
Providers
No providers.
Modules
| Name | Source | Version |
|---|---|---|
| sdc_host_linux | ../../modules/sdc_host_linux | n/a |
Resources
No resources.
Inputs
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| ip | Stores the IP address of the remote Linux host. | string |
n/a | yes |
| mdm_ips | all the mdms (either primary,secondary or virtual ips) in a comma separated list by cluster if unset will use the mdms of the cluster set in the provider block eg. [‘10.10.10.5,10.10.10.6’, ‘10.10.10.7,10.10.10.8’] | list(string) |
[] |
no |
| remote_host | Stores the SSH credentials for connecting to the remote Linux host. | object({ |
n/a | yes |
| scini | The SCINI module package related variables. | object({ |
n/a | yes |
| sdc_pkg | configuration for SDC package like url to download package from, copy as local package or directory on remote server. One of local_dir or remote_dir will be used based on the variable use_remote_path | object({ |
n/a | yes |
| versions | n/a | object({ |
n/a | yes |
Outputs
No outputs.