真正跨平臺!在Linux上跑Azure PowerShell腳本

    前段時間寫了個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瀏覽器

2.png


    以後直接yum install安裝,linux下安裝確實是方便,並且速度很快
curl

    sudo yum install -y powershellide

1.png


    直接輸入Pwsh進入PowerShellurl

3.png


    接下來就能夠安裝Azure的module了,注意linux下咱們要安裝最新的az module,也能夠試下其餘命令,語法和windows下的powershell基本沒有區別
3d

4.png


5.png


    接下來咱們來看下怎麼登錄Azure,和windows同樣,直接用login-azaccount就能登錄了,可是區別在於,由於沒有圖形化界面,因此須要用code登錄,和CLI感受差很少
code

6.png

    

    在瀏覽器裏輸入對應的code
blog

    7.png


    能夠看到已經可以get到帳戶裏的信息了!8.png


    另外有個問題須要說下,若是想運行一些定時的腳本,身份認證這塊,PowerShell core並不支持直接用用戶名密碼登錄,因此這裏咱們要不就用剛纔看到的code的方式來實現交互式登陸,要不就用service principal進行登陸

    未命名圖片.png


    service principal的介紹以前已經講過了,這裏再也不贅述,建立service principal的方法也比較簡單,用PowerShell就能夠建立了,若是想給service principal加個密碼,能夠在Portal上找到Service Principal,點擊添加secret


    9.png


    secret能夠設置過時的時間

    10.png


    把value保存下來,注意不保存的話之後就找不到了,因此注意必定要保存

    11.png

接下來就能夠用這個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


登陸成功!能夠愉快地跑腳本了

12.png



不得不說,真的是挺方便的,微軟這個操做必須得贊一個

相關文章
相關標籤/搜索