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

发布时间:2024-08-08 点击:83
云计算
前段时间写了个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
登录成功!可以愉快地跑脚本了
不得不说,真的是挺方便的,微软这个操作必须得赞一个

云计算时代 别再光盯着比特币 云数据币来袭
微信小程序怎么使用
塔式服务器新创云硬盘总容量4t
加密货币交易平台ShapeShift六位数收购品牌域名
起底火爆娱乐公众号幕后推手:推条广告赚上万
云虚拟主机和虚拟主机区别
云服务器怎么装sqlserver
六部门关于组织开展国家绿色数据中心(2020年)推荐工作的通知