前段時間寫了個PowerShell腳本給同事,換來的倒是同事的白眼,意思是說我這都是linux,你給我寫個powershell的腳本我去哪跑去,我真想回個白眼,立刻都0202年了,還覺得powershell只能在windows上跑呢,PowerShell開源,PowerShell Core出世都已經很長時間了,可是仍然有人天真的覺得PowerShell只適用Windows平臺,事實上,從PowerShell Core開始,PowerShell腳本已經能夠直接跑在各大Linux平臺上了!!並且體驗基本真的是無縫移植!!不少腳本一個字母都不須要改!
linux
拿Azure的腳原本說,咱們就來看下怎麼在Linux上把PowerShell玩起來shell
首先,咱們須要把PowerShell裝上,首先把repo的信息準備好
windows
curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo瀏覽器
以後直接yum install安裝,linux下安裝確實是方便,並且速度很快
curl
sudo yum install -y powershellide
直接輸入Pwsh進入PowerShellurl
接下來就能夠安裝Azure的module了,注意linux下咱們要安裝最新的az module,也能夠試下其餘命令,語法和windows下的powershell基本沒有區別
3d
接下來咱們來看下怎麼登錄Azure,和windows同樣,直接用login-azaccount就能登錄了,可是區別在於,由於沒有圖形化界面,因此須要用code登錄,和CLI感受差很少
code
在瀏覽器裏輸入對應的code
blog
能夠看到已經可以get到帳戶裏的信息了!
另外有個問題須要說下,若是想運行一些定時的腳本,身份認證這塊,PowerShell core並不支持直接用用戶名密碼登錄,因此這裏咱們要不就用剛纔看到的code的方式來實現交互式登陸,要不就用service principal進行登陸
service principal的介紹以前已經講過了,這裏再也不贅述,建立service principal的方法也比較簡單,用PowerShell就能夠建立了,若是想給service principal加個密碼,能夠在Portal上找到Service Principal,點擊添加secret
secret能夠設置過時的時間
把value保存下來,注意不保存的話之後就找不到了,因此注意必定要保存
接下來就能夠用這個secret進行登陸了!
$ApplicationID="a67aa2ff-f009-4ec9-93fa-c773aa1442ec" $Password="******" $TenantID="b7283bff-0d3d-4728-9189-8513ee70744a" $Password=ConvertTo-SecureString $Password -AsPlainText -Force $Credential=New-Object System.Management.Automation.PSCredential($ApplicationID,$Password) Add-AzAccount -Credential $Credential -ServicePrincipal -TenantId $TenantID -EnvironmentName azurechinacloud
登陸成功!能夠愉快地跑腳本了
不得不說,真的是挺方便的,微軟這個操做必須得贊一個