From 69da882771a379ff54a8046cc3f8ee481c1bdfb0 Mon Sep 17 00:00:00 2001 From: scaleoutsean Date: Tue, 27 Feb 2018 18:48:05 +0800 Subject: [PATCH 1/3] Trivial - PS Gallery URL in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f7000d6..7131d10 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Any user with a SolidFire storage system and Windows PowerShell can take advanta ## Installation -The **preferred** way to install SolidFire PowerShell Tools is to download it from [PowerShell Gallery](powershellgallery.com) with the following command: +The **preferred** way to install SolidFire PowerShell Tools is to download it from [PowerShell Gallery](https://powershellgallery.com) with the following command: PS> Install-Module -Name SolidFire From 3883b02b8efa39f0903576ff7923d3649f723e1c Mon Sep 17 00:00:00 2001 From: scaleoutsean Date: Tue, 27 Feb 2018 18:49:37 +0800 Subject: [PATCH 2/3] Trivial - update PS Gallery in Linux README.md --- docs/linux/README.md | 62 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/docs/linux/README.md b/docs/linux/README.md index 925a830..c61df64 100644 --- a/docs/linux/README.md +++ b/docs/linux/README.md @@ -1 +1,61 @@ -# Install SolidFire PowerShell on Linux ![solidfire-powershell-logo](../../Install/product.png) ![linux-logo](linux-logo-small.png) The commands should be run in a terminal session on the machine you want to install on. You don't have to be in a specific directory to execute any of these commands. You will need sudo access. ## Uninstall Old Version of SolidFire If you previously installed SolidFire 1.4, you should uninstall it before installing SolidFire 1.5. 1. Remove the old SolidFire module files: $ sudo rm -rf /usr/local/share/powershell/Modules/SolidFire 1. If you created a PowerShell profile file to initialize the SolidFire module on PowerShell startup, remove that file : $ sudo rm /opt/microsoft/powershell/6.0.0-beta.2/profile.ps1 1. If you will be upgrading to the latest PowerShell, you can also remove the directory where that profile file was located: $ sudo rm -rf /opt/microsoft/powershell/6.0.0-beta.2 ## Install or Upgrade PowerShell bits Follow the detailed instructions on the [PowerShell for Linux installation page](https://github.com/PowerShell/PowerShell/blob/master/docs/installation/linux.md). ## Install SolidFire bits 1. Start a PowerShell shell: $ pwsh 1. Inside the PowerShell shell, install SolidFire PowerShell Tools by downloading it from the [PowerShell Gallery](powershellgallery.com) with the following command: PS> Install-Module -Name SolidFire.Linux 1. Then, import the SolidFire module with the following command: PS> Import-Module SolidFire.Linux 1. To see a list of available commands, use: PS> Get-Command -Module SolidFire.Linux ## Paths * `$PSHOME` is `/opt/microsoft/powershell/[version]/` * User profiles will be read from `~/.config/powershell/profile.ps1` * Default profiles will be read from `$PSHOME/profile.ps1` * User modules will be read from `~/.local/share/powershell/Modules` * Shared modules will be read from `/usr/local/share/powershell/Modules` * Default modules will be read from `$PSHOME/Modules` * PSReadLine history will be recorded to `~/.local/share/powershell/PSReadLine/ConsoleHost_history.txt` The profiles respect PowerShell's per-host configuration, so the default host-specific profiles exists at `Microsoft.PowerShell_profile.ps1` in the same locations. On Linux and macOS, the [XDG Base Directory Specification][xdg-bds] is respected. [xdg-bds]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html \ No newline at end of file +# Install SolidFire PowerShell on Linux + +![solidfire-powershell-logo](../../Install/product.png) ![linux-logo](linux-logo-small.png) + +The commands should be run in a terminal session on the machine you want to install on. You don't have to be in a specific directory to execute any of these commands. You will need sudo access. + +## Uninstall Old Version of SolidFire + +If you previously installed SolidFire 1.4, you should uninstall it before installing SolidFire 1.5. + +1. Remove the old SolidFire module files: + + $ sudo rm -rf /usr/local/share/powershell/Modules/SolidFire + +1. If you created a PowerShell profile file to initialize the SolidFire module on PowerShell startup, remove that file : + + $ sudo rm /opt/microsoft/powershell/6.0.0-beta.2/profile.ps1 + +1. If you will be upgrading to the latest PowerShell, you can also remove the directory where that profile file was located: + + $ sudo rm -rf /opt/microsoft/powershell/6.0.0-beta.2 + +## Install or Upgrade PowerShell bits + +Follow the detailed instructions on the [PowerShell for Linux installation page](https://github.com/PowerShell/PowerShell/blob/master/docs/installation/linux.md). + +## Install SolidFire bits + +1. Start a PowerShell shell: + + $ pwsh + +1. Inside the PowerShell shell, install SolidFire PowerShell Tools by downloading it from the [PowerShell Gallery](https://powershellgallery.com) with the following command: + + PS> Install-Module -Name SolidFire.Linux + +1. Then, import the SolidFire module with the following command: + + PS> Import-Module SolidFire.Linux + +1. To see a list of available commands, use: + + PS> Get-Command -Module SolidFire.Linux + +## Paths + +* `$PSHOME` is `/opt/microsoft/powershell/[version]/` +* User profiles will be read from `~/.config/powershell/profile.ps1` +* Default profiles will be read from `$PSHOME/profile.ps1` +* User modules will be read from `~/.local/share/powershell/Modules` +* Shared modules will be read from `/usr/local/share/powershell/Modules` +* Default modules will be read from `$PSHOME/Modules` +* PSReadLine history will be recorded to `~/.local/share/powershell/PSReadLine/ConsoleHost_history.txt` + +The profiles respect PowerShell's per-host configuration, +so the default host-specific profiles exists at `Microsoft.PowerShell_profile.ps1` in the same locations. + +On Linux and macOS, the [XDG Base Directory Specification][xdg-bds] is respected. + +[xdg-bds]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html + From 648a17e6ae7e5ae8f1456e422d7933e78f688e26 Mon Sep 17 00:00:00 2001 From: Adam Haid Date: Fri, 27 Jul 2018 09:12:16 -0600 Subject: [PATCH 3/3] adds changes to installation docs and readme for 1.6 --- README.md | 22 +++++++++--- docker/README.md | 23 +++++++++++++ docker/create-posh-DEVELOP | 61 +++++++++++++++++++++++++++++++++ docker/docker-logo-small.png | Bin 0 -> 1423 bytes linux/README.md | 39 +++++++++++++++++++++ linux/linux-logo-small.png | Bin 0 -> 2374 bytes mac/README.md | 41 ++++++++++++++++++++++ mac/apple-logo-small.png | Bin 0 -> 1012 bytes windows/README.md | 34 ++++++++++++++++++ windows/windows-logo-small.png | Bin 0 -> 4944 bytes 10 files changed, 215 insertions(+), 5 deletions(-) create mode 100644 docker/README.md create mode 100644 docker/create-posh-DEVELOP create mode 100644 docker/docker-logo-small.png create mode 100644 linux/README.md create mode 100644 linux/linux-logo-small.png create mode 100644 mac/README.md create mode 100644 mac/apple-logo-small.png create mode 100644 windows/README.md create mode 100644 windows/windows-logo-small.png diff --git a/README.md b/README.md index 98cbbe7..b39187d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# NetApp SolidFire PowerShell Tools +# SolidFire PowerShell Tools -### Version 1.5.1 +### Version 1.6 ![logo](Install/product.png) @@ -12,7 +12,19 @@ Any user with a SolidFire storage system and Windows PowerShell can take advanta ## Installation -The SolidFire Powershell Module can be installed directly on multiple systems by following these instructions: +The **preferred** way to install SolidFire PowerShell Tools is to download it from [PowerShell Gallery](powershellgallery.com) with the following command: + +### PowerShell 5 on Windows + + PS> Install-Module -Name SolidFire + +### PowerShell 6 on Windows, Mac, or Linux + + PS> Install-Module -Name SolidFire.Core + +**-- or --** + +For more detailed instructions, the SolidFire Powershell Module can be installed directly on multiple systems by following these installation guides: | System | Installation | |---------------------------|-------------------------------------------| @@ -23,6 +35,6 @@ The SolidFire Powershell Module can be installed directly on multiple systems by ## Release Notes -[Click here to download latest release notes](Install/NetApp_SolidFire_PowerShell_Tools_v1.5.1_Release_Notes.pdf) +[Click here to download latest release notes](https://github.com/solidfire/PowerShell/blob/master/Install/NetApp_SolidFire_PowerShell_Tools_v1.6_Release_Notes.pdf) -[Click here to download User Guide Doc](Install/NetApp_SolidFire_PowerShell_Tools_v1.5.1_User_Guide.pdf) +User guides are available for each system in the installation instruction pages. diff --git a/docker/README.md b/docker/README.md new file mode 100644 index 0000000..deace7d --- /dev/null +++ b/docker/README.md @@ -0,0 +1,23 @@ +# To install SolidFire Powershell as Docker container: + +![solidfire-powershell-logo](../../Install/product.png) ![docker-logo](docker-logo-small.png) + +### Prerequisite: + +You must have Docker engine installed and running on your host machine. [Install the latest docker engine](https://www.docker.com/products/overview) + +### Run the SolidFire Powershell Container: + +Using a terminal, pull and run the latest SolidFire PowerShell image from our public Docker repo with this command: + + docker run -it -v $(pwd):/scripts netapp/solidfire-powershell + +This will download that SolidFire Docker image, start a new container, and open a PowerShell shell from your terminal with the SolidFire module loaded and ready. + +**NOTE:** Any scripts in your host's pwd* will be available at `/scripts` once you are in the PowerShell shell. + +*Present Working Directory + +**ProTip:** +You can change the mounted directory for `/scripts` by modifying the left side of the ':'. Use " " when a space exists in the path. +Ex: `docker run -it -v "/Users//Documents/Github/":/scripts netapp/solidfire-powershell` diff --git a/docker/create-posh-DEVELOP b/docker/create-posh-DEVELOP new file mode 100644 index 0000000..4f88333 --- /dev/null +++ b/docker/create-posh-DEVELOP @@ -0,0 +1,61 @@ +############################################################ +# Dockerfile to create SolidFire PowerShell Container +# From Jenkins DEVELOP branch +# Based on Ubuntu Image +############################################################ + +# Set the base image to use to Ubuntu +FROM ubuntu + +# Set the file maintainer (your name - the file's author) +MAINTAINER NetApp SolidFire Host Integrations + +# Add security to apt sources list +# RUN echo "deb http://security.ubuntu.com/ubuntu trusty-security main" >> /etc/apt/sources.list + +# Update the default application repository sources list +RUN apt-get update + +# Install sudo +RUN apt-get install sudo -y + +# Install WGET +RUN apt-get install wget -y + +# Install CURL +RUN apt-get install curl -y + +# Use a non-root account +# RUN useradd -ms /bin/bash posh +# USER posh +# WORKDIR /home/posh +# RUN whoami + +# Install Powershell dependencies +RUN sudo apt-get install libcurl3 libunwind8 libicu55 -y + +# Download Powershell for Ubuntu +RUN wget https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.13/powershell_6.0.0-alpha.13-1ubuntu1.16.04.1_amd64.deb + +# Install Powershell +RUN sudo dpkg -i powershell_6.0.0-alpha.13-1ubuntu1.16.04.1_amd64.deb +RUN sudo apt-get install -f + +# Install Powershell +# RUN curl -fsSL https://raw.githubusercontent.com/PowerShell/PowerShell/v6.0.0-alpha.13/tools/download.sh | bash -s + +# Setup Module Directory +RUN mkdir -p /usr/local/share/powershell/Modules/SolidFire + +# Download the SolidFire PowerShell module files +#RUN wget -P /usr/local/share/powershell/Modules/SolidFire/ http://hi-jenkins.eng.solidfire.net:8080/view/SDK/job/solidfire-sdk-dotnet-DEVELOP/lastSuccessfulBuild/artifact/src/DotNetSdk/bin/Debug/netstandard1.6/DotNetSdk.dll + +#RUN wget -P /usr/local/share/powershell/Modules/SolidFire/ http://hi-jenkins.eng.solidfire.net:8080/view/SDK/job/solidfire-sdk-dotnet-DEVELOP/lastSuccessfulBuild/artifact/src/DotNetSdk/bin/Debug/net46/Newtonsoft.Json.dll + +#RUN wget -P /usr/local/share/powershell/Modules/SolidFire/ http://hi-jenkins.eng.solidfire.net:8080/view/PowerShell/job/PowerShell%20Build%20Develop/lastSuccessfulBuild/artifact/src/PowerShellModule/bin/Debug/netstandard1.6/SolidFire.dll + +#RUN wget -P /usr/local/share/powershell/Modules/SolidFire/ http://hi-jenkins.eng.solidfire.net:8080/view/PowerShell/job/PowerShell%20Build%20Develop/lastSuccessfulBuild/artifact/src/PowerShellModule/SolidFire.psd1 + + +# Set the entrypoint to powershell command +ENTRYPOINT powershell diff --git a/docker/docker-logo-small.png b/docker/docker-logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..db6cf80594f51655d691e6e501a38ad243f293c9 GIT binary patch literal 1423 zcmV;A1#tR_P)T^$%H&IaO}dy(qvxpGI?L#_r3R< z?_D!dQ5EqO7pSA;s96;PUQD*&YyA0KY}HmZ7}>9LJs8FjiY?Xc{)+0( zk=KKKwELXs2@$yaN?rbfVn5iT8h!A(Y3}v=0d%%+l`&~RG_BHzuNT~kxhEPEx zU6rcF7vyB+(D%t7oQYovKvC=PKE4K@4(h|+o8a{40OaQkEk487V1I)ALyn&8tnV6) z-*f;9O;lVagbn+Q1H8soB@; z%(hY+laz}(jzPGbg%@&z?KJe6=}awo0Yb-I)a2&R&CNy6Z!BwNYKmLjeQYiBvEd?}=0uc6t8IL-qML z{;^*raDy+L#GaQTj=e$yu`|%<{)0SIPw3W)w_C+IMu*QpT->^9(ab}r#?9z_ss^7e zZgJ+VS@m=E?q4=d=%}z6 z5lSf_VYh|^pxnkJzzpvU*AQR3*exTPxCYW&*TXyz`sBkfF;KhTTUvKlV-ZS!S7Br5 z3X4}CLFZv)Aih!9Cw7HBZB|-6&qCZyhH5O|Nc|{6=&#DG%vi*n*OH$d>KaK}-@FW6 zP1fRmHxy&(I(!=D^w~5uevJ=bT#*2fp(DP1$?D}rDHK~aH1|XDoKDx`zd<5VNy@?A z3=Q53bC4BgllM!_-txD4&+aa@dNcWId@2&vCh*A#BZ^lsxQ?({Hk6u&9~Ps|)9_8& zRogSNcR3w-$N5+&y-12`Xm%q2(lz)ciOH#`YYrn}L!rPpTiEPs3nWx!o3}iWJ9V$M0OIUNBUN zQAbCL3jaNjgsX=NejTdZC83cbD%yPfkUDGxD7w0nd0c|hZ$fUIk~BK)P^0w_UPqz% zl}Hd;AVyu8qDEQ=J>l|Fry)eH1-_)Rbwq~{&Zum4@3a3;jxYDGX1hRxJ@%r-BR Install-Module -Name SolidFire.Core + +1. Then, import the SolidFire module with the following command: + + PS> Import-Module SolidFire.Core + +1. To see a list of available commands in this module, use: + + PS> Get-Command -Module SolidFire.Core + +## Paths + +* `$PSHOME` is `/opt/microsoft/powershell/[version]/` +* User profiles will be read from `~/.config/powershell/profile.ps1` +* Default profiles will be read from `$PSHOME/profile.ps1` +* User modules will be read from `~/.local/share/powershell/Modules` +* Shared modules will be read from `/usr/local/share/powershell/Modules` +* Default modules will be read from `$PSHOME/Modules` +* PSReadLine history will be recorded to `~/.local/share/powershell/PSReadLine/ConsoleHost_history.txt` + +The profiles respect PowerShell's per-host configuration, +so the default host-specific profiles exists at `Microsoft.PowerShell_profile.ps1` in the same locations. + diff --git a/linux/linux-logo-small.png b/linux/linux-logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..bd049fca3e6331894304de5be5cb34ccf78da014 GIT binary patch literal 2374 zcmV-M3Ay%(P)^EutuV`~MHDSr7yjb<>x5@AudlW@o;i-!;GgEW`Y= z{r_$XVot<7h`A6m`8kQ7$uOdPmgTC5X^2&m{X%kl12I;gg&Py0AtDivw#M@kn34w`bGbuBBxHBis8dY z2%@P-iA09^^XDTXA_6mJdUZ5JkuMR%Wla3UWISgJK$vcCelu&I-N*#S)Ty<4eBGtu}yLmM9NW`MgjUm zlRFx9m#t89R*4G-lo>RV!`KCjcvtzC6;_OHgpA1t4c2iNGM_rz(;2wH!HHrLeQ$ zgqEsQT4+1bZ}kPhR3?>T)hELcw_1$sP#KPgnj$U05a+f_k+Z`X2Sa@DhKC1fr3x%q zun_k4y|s0~=>vc(_3Ylgdl2gPdqjOMLGo$|()anZPV@jT+=)dGOCvkR=P zd(x4jf_%6CE1!dikYhuJcpy9b7!nfH`0u{$I1scFYIQ7*9!*DaaSa~ZLB{2VLx&FH?p+Peoy$Q=N-{Ds(sAwD71Y#J;o-vuG&VjEEG8!A zvDxTVjujKBfQ1VeJ`za1Tv}Qz2-hCdwT6a!Li)5G?u3@AdfDO~$&HItDof<%UVbEy zdb_^9u9erdM$@ROssd}*`qMVr7UB%KrtQlTZ$xf*RV3oz?(UBA@>1NtUoQxx;wvi3 zgh)^bnpQL#Wo0F}efuV^UdPi8C4s|&>XEAA#moTmB4tOLg_sO+?_cB&r@g^pwFgEUi%*>;L=XFy^cVE}E z>2>4Abrclj!^+A=Xsec%){jPT5`ZFd57~iZAED`HC>KMVPOI6>>LEq78aIJD2%klochAnzEY`N@V<}F zvUa^ni?yo&G?fMn7$}IQt2kOyEiF|;oz>mqS?U>DbaZW7QgY|H0jSXtgo<`{b_I1# zOE+q2c_rDc+c0`z8yj2tf~v#3ZaX@3X727o1kwHa^=~^~jPC9?4*?vxuu7%E>#w`D zD@OaI?J590-^ImMSR>H3%=2QMcFK(C-htncnexRf9&6@G@Rp}byR**I0??VMckkB( z0Aphl;mzI9p>NU!Pkpz((f0LaM8`IY)|W&{Q4=pi(5F1y2fN|s&FhZ=R92RE3Q&Ky z0@u`Ia3|3QBL~Y`rH+F`9}IM|PR`%R$e&wy>S|_K`Wk+0nm_M*ZU^6387D(+q8ugB z63m~-3E|Jm%4}5wboO}?0EH|s`T?hRIifUHg^`1#tpLPgDI)z%8qe>P1wNO@)7Nm3 zxglcQ2qU&nj4~p+HbIWMBn9~^!^LknIN5V#mQf-qDpF{PU3qxXLGSE|RAdJ`p*YGK zUrr}$C#RiC_qtBA+plra6H%>jQB(Vce5f!N<=G&Xu~$95TbD>MuPV|n<41a`O1~NP624)rYA=u zeM=wW1RLCmw8qs?74r6|P((ggC-#CS#ST@8HcdZ9DARukF>-t+h$CO|r-~yx0x%S! zK?^!_rx=!I&A$QU<>huMg{Dt=n=Jf|1b~{PUZ_lHwwh!+)TY>@?ub2VlWkFzVAE81 z(4z2CkkR<3e(I*I7Uet%Ku9G5QBG1Rc$pp2Q3WDi6B&M$f@fCEdIX{WZZ z4@#rOsBUSU0*C;kwVzU{FoH+OKVbuyqDFE^D@noTsfg?v!$jrY(_N#%fpU;VjAbh(X>F(K_zLK zRw(^Wg&)5)#i;-}_AlU@*8W+PyYyXVz_ULGCNq*Rlmuan~Z76Y8xC_|#J7~4PM?yZ<4`fAa5#=KkSpgCk6?Dsz7xn?@Eas4dz z`q%TAnpj`9DQg3Z%(V;%DCWJx+!{NWvFdyzX9m04GQ0jdihHpB1Cn}kc?AB2$I8iE z!~D0I@~07*qoM6N<$f*vJ#XaE2J literal 0 HcmV?d00001 diff --git a/mac/README.md b/mac/README.md new file mode 100644 index 0000000..cdd5889 --- /dev/null +++ b/mac/README.md @@ -0,0 +1,41 @@ +# Install SolidFire PowerShell on Mac High Sierra + +![solidfire-powershell-logo](../../Install/product.png) ![apple-logo](apple-logo-small.png) + +## Installation Instructions + +The commands should be run in a terminal session on the machine you want to install on. You don't have to be in a specific directory to execute any of these commands. You will need sudo access. + +### First, Install PowerShell 6 + +Follow the detailed instructions on the [PowerShell 6 for Mac installation page](https://docs.microsoft.com/en-us/powershell/scripting/setup/installing-powershell-core-on-macos?view=powershell-6). + +### Next, Install SolidFire.Core Module + +1. Once inside the PowerShell shell, install SolidFire PowerShell Tools by downloading it from the [PowerShell Gallery](powershellgallery.com) with the following command: + + PS> Install-Module -Name SolidFire.Core + +1. Then, import the SolidFire module with the following command: + + PS> Import-Module SolidFire.Core + +1. To see a list of available commands, use: + + PS> Get-Command -Module SolidFire.Core + +## Paths + +* `$PSHOME` is `/opt/microsoft/powershell/[version]/` +* User profiles will be read from `~/.config/powershell/profile.ps1` +* Default profiles will be read from `$PSHOME/profile.ps1` +* User modules will be read from `~/.local/share/powershell/Modules` +* Shared modules will be read from `/usr/local/share/powershell/Modules` +* Default modules will be read from `$PSHOME/Modules` +* PSReadLine history will be recorded to `~/.local/share/powershell/PSReadLine/ConsoleHost_history.txt` + +The profiles respect PowerShell's per-host configuration, +so the default host-specific profiles exists at `Microsoft.PowerShell_profile.ps1` in the same locations. + +`$PSHOME` is `/usr/local/microsoft/powershell/[version]/`, +and the symlink is placed at `/usr/local/bin/powershell`. diff --git a/mac/apple-logo-small.png b/mac/apple-logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..c10d02377a361e23ca51433dcb3b39b366dc2993 GIT binary patch literal 1012 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