真正跨平台!在Linux上跑AzurePowerShell脚本

云计算

前段时间写了个PowerShell脚本给同事,换来的却是同事的白眼,意思是说我这都是linux,你给我写个powershell的脚本我去哪跑去,我真想回个白眼,马上都0202年了,还以为powershell只能在windows上跑呢,PowerShell开源,PowerShell Core出世都已经很长时间了,但是仍然有人天真的以为PowerShell只适用Windows平台,事实上,从PowerShell Core开始,PowerShell脚本已经可以直接跑在各大Linux平台上了!!而且体验基本真的是无缝移植!!很多脚本一个字母都不需要改!

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、网站空间、营销软件、网站建设、苏州网站维护、网站推广。

拿Azure的脚本来说,我们就来看下怎么在Linux上把PowerShell玩起来

首先,我们需要把PowerShell装上,首先把repo的信息准备好

curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo

之后直接yum install安装,linux下安装确实是方便,而且速度很快

sudo yum install -y powershell

    直接输入Pwsh进入PowerShell

接下来就可以安装Azure的module了,注意linux下我们要安装最新的az module,也可以试下其他命令,语法和windows下的powershell基本没有区别

接下来我们来看下怎么登陆Azure,和windows一样,直接用login-azaccount就能登陆了,但是区别在于,因为没有图形化界面,所以需要用code登陆,和CLI感觉差不多

在浏览器里输入对应的code

可以看到已经能够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

登录成功!可以愉快地跑脚本了

不得不说,真的是挺方便的,微软这个操作必须得赞一个


网页名称:真正跨平台!在Linux上跑AzurePowerShell脚本
网站网址:http://cdiso.cn/article/cgidic.html

其他资讯