From fa573182521b21db71ba74201c681b837ee5b25d Mon Sep 17 00:00:00 2001 From: msalem2 Date: Thu, 14 Jan 2016 16:11:53 -0800 Subject: [PATCH] Update Documentatio to add Fuel 7.0 Change-Id: I5fdb2df9660cb48559583bac401eb4220d1c6f57 --- README.md | 6 +- .../manifests/centos.pp | 2 +- .../manifests/ubuntu.pp | 77 ++++++------ .../manifests/centos.pp | 2 +- .../manifests/ubuntu.pp | 111 ++++++++---------- doc/TestPlanforScaleIOCinderFuelPlugin.docx | Bin 5842268 -> 5842412 bytes ...estReportforScaleio-Cinder-FuelPlugin.docx | Bin 25181 -> 25304 bytes doc/source/installation.rst | 14 +-- doc/source/introduction.rst | 2 +- metadata.yaml | 2 +- ...fuel-plugin-scaleio-cinder-1-5-0-spec.rst} | 0 11 files changed, 99 insertions(+), 117 deletions(-) rename spec/{fuel-plugin-scaleio-cinder-1-0-0-spec.rst => fuel-plugin-scaleio-cinder-1-5-0-spec.rst} (100%) diff --git a/README.md b/README.md index bd83001..eaef333 100644 --- a/README.md +++ b/README.md @@ -35,12 +35,12 @@ To install the ScaleIO-Cinder plugin, follow these steps: 2. Copy the plugin file to the Fuel Master node. Follow the [Quick start guide](https://software.mirantis.com/quick-start/) if you don't have a running Fuel Master node yet. ``` - $ scp scaleio-cinder-1.0-1.0.0-1.noarch.rpm root@:/tmp/ + $ scp scaleio-cinder-1.5-1.5.0-1.noarch.rpm root@:/tmp/ ``` 3. Log into the Fuel Master node and install the plugin using the fuel command line. ``` - $ fuel plugins --install /tmp/scaleio-cinder-1.0-1.0.0-1.noarch.rpm + $ fuel plugins --install /tmp/scaleio-cinder-1.5-1.5.0-1.noarch.rpm ``` 4. Verify that the plugin is installed correctly. @@ -92,7 +92,7 @@ need further instructions about how to build the Fuel Plugin Builder.* 7. Now you have created an RPM file that you can install using the steps described above. The RPM file will be located in: ``` - $ ./fuel-plugin-scaleio-cinder/scaleio-cinder-1.0-1.0.0-1.noarch.rpm + $ ./fuel-plugin-scaleio-cinder/scaleio-cinder-1.5-1.5.0-1.noarch.rpm ``` # User Guide diff --git a/deployment_scripts/puppet/install_scaleio_compute/manifests/centos.pp b/deployment_scripts/puppet/install_scaleio_compute/manifests/centos.pp index 3619ff6..e335360 100644 --- a/deployment_scripts/puppet/install_scaleio_compute/manifests/centos.pp +++ b/deployment_scripts/puppet/install_scaleio_compute/manifests/centos.pp @@ -27,7 +27,7 @@ class install_scaleio_compute::centos file { 'scaleiolibvirtdriver.py': path => '/usr/lib/python2.6/site-packages/nova/virt/libvirt/scaleiolibvirtdriver.py', - source => 'puppet:///modules/install_scaleio_compute/scaleiolibvirtdriver.py', + source => 'puppet:///modules/install_scaleio_compute/6.1/scaleiolibvirtdriver.py', mode => '644', owner => 'root', group => 'root', diff --git a/deployment_scripts/puppet/install_scaleio_compute/manifests/ubuntu.pp b/deployment_scripts/puppet/install_scaleio_compute/manifests/ubuntu.pp index 67cbfde..dec85c2 100644 --- a/deployment_scripts/puppet/install_scaleio_compute/manifests/ubuntu.pp +++ b/deployment_scripts/puppet/install_scaleio_compute/manifests/ubuntu.pp @@ -5,50 +5,11 @@ class install_scaleio_compute::ubuntu $nova_service = 'nova-compute' $mdm_ip_1 = $plugin_settings['scaleio_mdm1'] $mdm_ip_2 = $plugin_settings['scaleio_mdm2'] - + $version = hiera('fuel_version') + #install ScaleIO SDC package - - # file { 'emc-scaleio-sdc.deb': - # path => '/tmp/emc-scaleio-sdc.deb', - # source => 'puppet:///modules/install_scaleio_compute/emc.deb', - # mode => '644', - # owner => 'root', - # group => 'root', - # }-> - - #exec {"Install sdc": - # command => "bash -c 'dpkg -i /tmp/emc-scaleio-sdc.deb'", - # path => ['/usr/bin', '/bin','/usr/local/sbin','/usr/sbin','/sbin' ], - #}-> - -package{'emc-scaleio-sdc': - ensure => installed, -}-> - exec {"Add MDM to drv-cfg": - command => "bash -c 'echo mdm ${mdm_ip_1},${mdm_ip_2} >> /bin/emc/scaleio/drv_cfg.txt'", - path => ['/usr/bin', '/bin','/usr/local/sbin','/usr/sbin','/sbin' ], - }-> - - - exec {"Start SDC": - command => "bash -c '/etc/init.d/scini restart'", - path => ['/usr/bin', '/bin','/usr/local/sbin','/usr/sbin','/sbin' ], - }-> - - - #Configure nova-compute - ini_subsetting { 'nova-volume_driver': - ensure => present, - path => '/etc/nova/nova.conf', - subsetting_separator => ',', - section => 'libvirt', - setting => 'volume_drivers', - subsetting => 'scaleio=nova.virt.libvirt.scaleiolibvirtdriver.LibvirtScaleIOVolumeDriver', - notify => Service[$nova_service], - }-> - -if(hiera('fuel_version') == '6.1') { +if($version == '6.1') { file { 'scaleiolibvirtdriver.py': path => '/usr/lib/python2.7/dist-packages/nova/virt/libvirt/scaleiolibvirtdriver.py', source => 'puppet:///modules/install_scaleio_compute/6.1/scaleiolibvirtdriver.py', @@ -57,7 +18,10 @@ if(hiera('fuel_version') == '6.1') { group => 'root', notify => Service[$nova_service], } - }else{ + +} +else +{ file { 'driver.py': path => '/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py', source => 'puppet:///modules/install_scaleio_compute/7.0/driver.py', @@ -74,6 +38,33 @@ if(hiera('fuel_version') == '6.1') { group => 'root', notify => Service[$nova_service], } + } + +package{'emc-scaleio-sdc': + ensure => installed, +}-> + exec {"Add MDM to drv-cfg": + command => "bash -c 'echo mdm ${mdm_ip_1},${mdm_ip_2} >> /bin/emc/scaleio/drv_cfg.txt'", + path => ['/usr/bin', '/bin','/usr/local/sbin','/usr/sbin','/sbin' ], + }-> + + + exec {"Start SDC": + command => "bash -c '/etc/init.d/scini restart'", + path => ['/usr/bin', '/bin','/usr/local/sbin','/usr/sbin','/sbin' ], + }-> + + + + #Configure nova-compute + ini_subsetting { 'nova-volume_driver': + ensure => present, + path => '/etc/nova/nova.conf', + subsetting_separator => ',', + section => 'libvirt', + setting => 'volume_drivers', + subsetting => 'scaleio=nova.virt.libvirt.scaleiolibvirtdriver.LibvirtScaleIOVolumeDriver', + notify => Service[$nova_service], }-> diff --git a/deployment_scripts/puppet/install_scaleio_controller/manifests/centos.pp b/deployment_scripts/puppet/install_scaleio_controller/manifests/centos.pp index a017285..6f92928 100644 --- a/deployment_scripts/puppet/install_scaleio_controller/manifests/centos.pp +++ b/deployment_scripts/puppet/install_scaleio_controller/manifests/centos.pp @@ -16,7 +16,7 @@ class install_scaleio_controller::centos #2. Copy ScaleIO Files file { 'scaleio.py': path => '/usr/lib/python2.6/site-packages/cinder/volume/drivers/emc/scaleio.py', - source => 'puppet:///modules/install_scaleio_controller/scaleio.py', + source => 'puppet:///modules/install_scaleio_controller/6.1/scaleio.py', mode => '644', owner => 'root', group => 'root', diff --git a/deployment_scripts/puppet/install_scaleio_controller/manifests/ubuntu.pp b/deployment_scripts/puppet/install_scaleio_controller/manifests/ubuntu.pp index a38e905..5500e3c 100644 --- a/deployment_scripts/puppet/install_scaleio_controller/manifests/ubuntu.pp +++ b/deployment_scripts/puppet/install_scaleio_controller/manifests/ubuntu.pp @@ -7,66 +7,8 @@ class install_scaleio_controller::ubuntu $mdm_ip_2 = $plugin_settings['scaleio_mdm2'] $admin = $plugin_settings['scaleio_Admin'] $password = $plugin_settings['scaleio_Password'] - $volume_type = "scaleio-thin" -#1. Install SDC package - #file { 'emc-scaleio-sdc.deb': - # path => '/tmp/emc-scaleio-sdc.deb', - # source => 'puppet:///modules/install_scaleio_controller/emc.deb', - # mode => '644', - # owner => 'root', - # group => 'root', -# }-> - -# exec {"Install sdc": -# command => "bash -c 'dpkg -i /tmp/emc-scaleio-sdc.deb'", -# path => ['/usr/bin', '/bin','/usr/local/sbin','/usr/sbin','/sbin' ], -# }-> - - package {'emc-scaleio-sdc': - ensure => installed , - }-> - exec {"Add MDM to drv-cfg": - command => "bash -c 'echo mdm ${mdm_ip_1} >>/bin/emc/scaleio/drv_cfg.txt'", - path => ['/usr/bin', '/bin','/usr/local/sbin','/usr/sbin','/sbin' ], - - }-> - - - exec {"Start SDC": - command => "bash -c '/etc/init.d/scini restart'", - path => ['/usr/bin', '/bin','/usr/local/sbin','/usr/sbin','/sbin' ], - - }-> - -#2. Copy ScaleIO Files - if(hiera('fuel_version') == '6.1') { - file { 'scaleio_6.py': - path => '/usr/lib/python2.7/dist-packages/cinder/volume/drivers/emc/scaleio.py', - source => 'puppet:///modules/install_scaleio_controller/6.1/scaleio.py', - mode => '644', - owner => 'root', - group => 'root', - } - - }else{ - file { 'scaleio_7.py': - path => '/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py', - source => 'puppet:///modules/install_scaleio_controller/7.0/scaleio.py', - mode => '644', - owner => 'root', - group => 'root', - notify => Service[$nova_service], - } - } -> - - file { 'scaleio.filters': - path => '/etc/cinder/rootwrap.d/scaleio.filters', - source => 'puppet:///modules/install_scaleio_controller/scaleio.filters', - mode => '644', - owner => 'root', - group => 'root', - before => File['cinder_scaleio.config'], - } + $volume_type = "scaleio-thin" + $version = hiera('fuel_version') # 3. Create config for ScaleIO $cinder_scaleio_config = "[scaleio] @@ -80,6 +22,55 @@ round_volume_capacity=True force_delete=True verify_server_certificate=False " + +if($version == '6.1') { + file { 'scaleio_6.py': + path => '/usr/lib/python2.7/dist-packages/cinder/volume/drivers/emc/scaleio.py', + source => 'puppet:///modules/install_scaleio_controller/6.1/scaleio.py', + mode => '644', + owner => 'root', + group => 'root', + } + +} +else +{ + file { 'scaleio_7.py': + path => '/usr/lib/python2.7/dist-packages/cinder/volume/drivers/emc/scaleio.py', + source => 'puppet:///modules/install_scaleio_controller/7.0/scaleio.py', + mode => '644', + owner => 'root', + group => 'root', + + } + } + + package {'emc-scaleio-sdc': + ensure => installed , + }-> + + exec {"Add MDM to drv-cfg": + command => "bash -c 'echo mdm ${mdm_ip_1} >>/bin/emc/scaleio/drv_cfg.txt'", + path => ['/usr/bin', '/bin','/usr/local/sbin','/usr/sbin','/sbin' ], + + }-> + +exec {"Start SDC": + command => "bash -c '/etc/init.d/scini restart'", + path => ['/usr/bin', '/bin','/usr/local/sbin','/usr/sbin','/sbin' ], + + }-> + +file { 'scaleio.filters': + path => '/etc/cinder/rootwrap.d/scaleio.filters', + source => 'puppet:///modules/install_scaleio_controller/scaleio.filters', + mode => '644', + owner => 'root', + group => 'root', + before => File['cinder_scaleio.config'], + }-> + +# 3. Create config for ScaleIO file { 'cinder_scaleio.config': ensure => present, diff --git a/doc/TestPlanforScaleIOCinderFuelPlugin.docx b/doc/TestPlanforScaleIOCinderFuelPlugin.docx index 23f0cc133b646208091d0c8108cb0508e7b59f9a..2cbcdef5474766ec7435db0d2d2eed21ca09b991 100644 GIT binary patch delta 29865 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 UX@T{D2I-*%(IV8~fq)|a1y{0X!~g&Q diff --git a/doc/TestReportforScaleio-Cinder-FuelPlugin.docx b/doc/TestReportforScaleio-Cinder-FuelPlugin.docx index 6a11c70bde1bba5df31c3a1a440b5c8bbc607852..eabc7b35965574b716d39eb863eacbbe9c3438c0 100644 GIT binary patch delta 10605 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: + `Fuel CLI `_: :: - [root@fuel ~]# fuel plugins --install scaleio-cinder-1.0-1.0.0-1.noarch.rpm + [root@fuel ~]# fuel plugins --install scaleio-cinder-1.5-1.5.0-1.noarch.rpm #. Verify that the plugin is installed correctly: :: @@ -23,7 +23,7 @@ To install the ScaleIO-Cinder Fuel plugin: [root@fuel-master ~]# fuel plugins id | name | version | package_version ---|---------------|---------|---------------- - 1 | scaleio-cinder| 1.0.0 | 1.0.0 + 1 | scaleio-cinder| 1.5.0 | 2.0.0 .. raw:: pdf @@ -36,9 +36,9 @@ Once the plugin has been copied and installed at the Fuel Master node, you can configure the nodes and set the parameters for the plugin: #. Start by creating a new OpenStack environment following the - `Mirantis OpenStack User Guide `_. + `Mirantis OpenStack User Guide `_. -#. `Configure your environment `_. +#. `Configure your environment `_. .. image:: images/scaleio-cinder-install-2.png @@ -80,7 +80,7 @@ Fuel Master node, you can configure the nodes and set the parameters for the plu #. You can run the network verification check and - `deploy changes `_ then. + `deploy changes `_ then. #. After deployment is completed, you should see a success message: diff --git a/doc/source/introduction.rst b/doc/source/introduction.rst index 7c113b8..d670318 100644 --- a/doc/source/introduction.rst +++ b/doc/source/introduction.rst @@ -49,7 +49,7 @@ These are the plugin requirements: +--------------------------------------------------------------------------------+--------------------------------+ | ScaleIO Version | >= 1.32 | +--------------------------------------------------------------------------------+--------------------------------+ -| Controller and Compute Nodes' Operative System | CentOS/RHEL 6.5 | +| Controller and Compute Nodes' Operative System | CentOS 6.5/Ubuntu 14.04 LTS | +--------------------------------------------------------------------------------+--------------------------------+ | OpenStack Cluster (Controller/cinder-volume node) can access ScaleIO Cluster | via a TCP/IP Network | +--------------------------------------------------------------------------------+--------------------------------+ diff --git a/metadata.yaml b/metadata.yaml index be6dcde..cf536c4 100644 --- a/metadata.yaml +++ b/metadata.yaml @@ -34,6 +34,6 @@ releases: mode: ['ha', 'multinode'] deployment_scripts_path: deployment_scripts/ repository_path: repositories/ubuntu -# Version of plugin package +#Version of plugin package package_version: '2.0.0' diff --git a/spec/fuel-plugin-scaleio-cinder-1-0-0-spec.rst b/spec/fuel-plugin-scaleio-cinder-1-5-0-spec.rst similarity index 100% rename from spec/fuel-plugin-scaleio-cinder-1-0-0-spec.rst rename to spec/fuel-plugin-scaleio-cinder-1-5-0-spec.rst