设为首页 收藏本站
查看: 1798|回复: 0

[经验分享] Windows Azure 自动化配置介绍

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-14 08:45:01 | 显示全部楼层 |阅读模式
Windows Azure 自动化配置介绍
目前windows azure的自动化服务在国际版本支持稍微好点,因为在国内版本上配置脚本后,可以正常执行脚本来完成相关执行的任务(经过跟客服沟通后,说目前windows azure 自动化服务属于预览版,功能还不太完善),但是脚本不生效。所以呢申请了一个国际版本的windows azure账户进行测试。国际版本的windows azure和国内版本的windows azure还是有一定差别的,具体就不多介绍了。我们看到windows azure登陆在功能模块有还很多看类似的功能,比如azure的自动化服务和azure的计划任务是有一定差别的,对于计划任务在windowsazure上只能执行三种类型,http、https、等get方法的程序任务,具体下一篇介绍,而azure的自动化服务只能运行ps1的脚本程序;azure自动化服务中目前属于预览功能阶段,因为目前自动化功能的执行任务操作,只能选择指定时间段来执行,无法更详细的执行,比如是每周或者每月或者每天执行多次的选项,后期应该会更新该功能。具体操作见下:
azure自动化账户下可以运行多个runbook,可一个runbook只能选择一个时间段,同时一个runbook下可以定义多个脚本程序来执行不同的任务。同样如果要执行自动关机和自动开机的话,我们需要创建一个自动化账户,然后在自动化账户下创建两个runbook,来设置在不同时间断执行不同的脚本程序。
http://www.windowsazure.cn/blog/2015/04/16/azure-automation
https://technet.microsoft.com/library/dn469262.aspx
所以我们单机自动化,首先需要创建一个自动化账户;
wKiom1WjbcHhKEshAACL8ugx7a8474.jpg
我们创建自动管理账户
自定义自动管理账户名称及区域:
wKioL1Wjb5ih7DPHAAB9WjJUcUw290.jpg
创建完成
wKioL1Wjb5uAcyj9AACNMkfg3HU354.jpg
我们单击小箭头进入自动化管理账户;发现刚才新建的自动化账户下的自动化计划是免费的。但是免费的每月只能运行500分钟的作业运行时间==30天*24小时=720分钟,所以是不够的。除非不要设置长时间,而收费的每月运行作业运行时间是无限制的。
wKioL1Wjb5vxBhm1AACfyT-93zo900.jpg
接下来我们切换到资产下可以看见关于运行的一些模块,我们同样单击模块内部查看可以看见相应的一些执行命令
wKioL1Wjb5uSMY3CAAC85WNO5Lg470.jpg
wKiom1WjbcWiOVWIAAD0TPtfT_U784.jpg
我们再次进入runbook选项,单击导入即可
wKiom1WjbcWy6ef2AACzc_CWGtw079.jpg
提示将会选择一个powershell脚本文件。
所以我们提前需要编辑好一个powershell脚本文件:因为我们要做定时启动和定时关机,所以我们需要两个脚本,我们先设置一个
接着我们定义启动脚本:
需要注意的是:脚本里面需要根据自己的环境修改三个变量来完成脚本执行:
我们通过powershell命令来查看相关的信息:
Get-azuresubscription 可查看subscriptionname、subscriptionid等信息
wKiom1WjbcWTIbfTAAD-pyFwLFU598.jpg
其实我们可以通过设置页面的---管理证书下看见所需要的所有定义内容:订阅id、订阅名称、及证书名称
wKioL1Wjb5zyTBZkAADD-35w5W0613.jpg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
workflow Start-VM
{
    Param (
        [parameter(Mandatory=$true)]
        [String]
        $VMName,  
        [parameter(Mandatory=$true)]
        [String]
        $ServiceName
    )
    $day = (Get-Date).DayOfWeek
    if ($day -eq 'Saturday' -or $day -eq 'Sunday'){
        exit
    }
    $subscriptionName = Get-AutomationVariable -Name "SubscriptionName"
    $subscriptionID = Get-AutomationVariable -Name "SubscriptionID"
    $certificateName = Get-AutomationVariable -Name "CertificateName"
    $certificate = Get-AutomationCertificate -Name $certificateName
    Set-AzureSubscription -SubscriptionName $subscriptionName -SubscriptionId $subscriptionID -Certificate $certificate
    Select-AzureSubscription $subscriptionName
    Start-AzureVM -Name $VMName -ServiceName $ServiceName
}



wKiom1WjbciTxVGNAADxAHFdt4Y988.jpg
关机脚本:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
workflow Stop-VM
{
Param (
[parameter(Mandatory=$true)]
[String]
$VMName,
[parameter(Mandatory=$true)]
[String]
$ServiceName
)
$day = (Get-Date).DayOfWeek
if ($day -eq 'Saturday' -or $day -eq 'Sunday'){
exit
}
$subscriptionName = Get-AutomationVariable -Name "SubscriptionName"
$subscriptionID = Get-AutomationVariable -Name "SubscriptionID"
$certificateName = Get-AutomationVariable -Name "CertificateName"
$certificate = Get-AutomationCertificate -Name $certificateName
Set-AzureSubscription -SubscriptionName $subscriptionName -SubscriptionId $subscriptionID -Certificate $certificate
Select-AzureSubscription $subscriptionName
Stop-AzureVM -Name $VMName -ServiceName $ServiceName -Force
}



wKioL1Wjb5-wlExJAADZTQnJj8Y892.jpg
脚本文件定义好后,我们需要将脚本导入到runbook中。
wKioL1Wjb5-CKovHAACfaGNIL9g329.jpg
导入完成:
wKiom1WjbcmiM2gvAAC30czw64g615.jpg
我们通过单击小箭头进入star-azurevm的runbook中
wKiom1WjbcmRGSx2AADEhksnaj0672.jpg
我们可以单击创作查看代码:
wKiom1WjbcnDE721AADLllIIHv8100.jpg
接下来我们为了保险起见还是测试一下:首先我们保证当前azure下的vm是关机的
Get-azurevm 查看当前订阅下的vm的运行状态
wKioL1Wjb6Dwph8TAACZDRMYOuo504.jpg
然后我们测试脚本
wKioL1Wjb6ChSuL_AAC_E_sKsfw352.jpg
我们输入需要操作的vmname及servicename; 这些信息可以通过get-azurevm进行查看
wKioL1Wjb6DzEIVmAAB9sZHqE10253.jpg
正在执行代码:
wKioL1Wjb6CCOgFKAAC7Mw7Cr1U491.jpg
运行失败
wKiom1WjbcqihYlLAAC94vGvNas356.jpg
经过查找文档后,我们需要上传一张证书,具体见下:
https://blogs.endjin.com/2015/02 ... e-azure-automation/
证书操作相关文档:
http://blogs.technet.com/b/orche ... review-service.aspx
https://msdn.microsoft.com/en-us/library/azure/gg551722.aspx
You will need the makecert.exe to create a self-signed certificate. This tool is available in the Windows Software Development Kit (SDK) for Windows 8 http://msdn.microsoft.com/en-us/ ... top/hh852363.aspxor in Visual Studio. I’ll show the process from the Windows SDK.
wKiom1WjbcqiMyu4AADS9pp3-2M984.jpg
wKiom1WjbcrSHcywAADqu2R29Qg823.jpg
You only need to install the Windows Software Development Kit so you can deselect the others since makecert.exe is available in the base install.
wKiom1WjbcrjvjaZAAFNFJYLmyc875.jpg
wKiom1Wjbc6jVgfyAACcwXmt8jo028.jpg
wKiom1Wjbc7B8pH-AACqae8BjA0189.jpg
Create a self-signed certificate that you will add to your Azure subscription and use when managing services from Azure Automation. You can learn more about the management certificate on http://msdn.microsoft.com/en-us/library/azure/gg551722.aspx. Open up an administrator command prompt as shown below and change directory to the location of makecert.exe.
1
Cd C:\Program Files (x86)\Windows Kits\8.0\bin\x64



wKioL1Wjb6Xwj07SAAGHJsATuF4768.jpg
C:\Program Files (x86)\Windows Kits\8.0\bin\x64>makecert -sky exchange -r –n "CN=AzureManagement" -pe -a sha1 -len 2048 -ss My "AzureManagement.cer"
Note: Copy / pasting the above line of code may not work. If you hit the error "Too many parameters," try typing it manually.
1
makecert -sky exchange -r -n "CN=AzureManagement" -pe -a sha1 -len 2048 -ss My "AzureManagement.cer"



wKioL1Wjb6WD4F9vAAHgHD_Sa-g533.jpg
On a Windows 8.1 or Windows 2012 R2 you can use the built in PowerShell cmdlets to export the certificate with a private key into a pfx file that you can import into the Azure Automation service.
You can read more about this cmdlet on http://technet.microsoft.com/en-us/library/hh848635.aspx.
Open up an administrator PowerShell shell and run the following commands:
1
2
$MyPwd = ConvertTo-SecureString -String "CbA123321AbC" -Force –AsPlainText (replacing the password with one that you choose)
$mypwd = ConvertTo-SecureString -String "1234" -Force –AsPlainText



wKiom1WjbdHRkvo9AAC7Hym6Pm8812.jpg
1
$AzureCert = Get-ChildItem -Path Cert:\CurrentUser\My | where {$_.Subject -match "AzureManagement"}



(replacing AzureManagement with the name you gave your certificate in

也可以使用以下命令进行操作
1
Get-ChildItem -Path cert:\localMachine\my\xxxxxxxxxxxxxxxxxxxxxxx | Export-PfxCertificate -FilePath C:\mypfx.pfx -Password $mypwd



注:在以上命令的时候输入cert:\localmachine\my\的是用tab键的时候会出来一组数据,其实我们也可以使用,可以根据自己的需求来写即可
wKioL1Wjb6iibHQuAACNRflrBow908.jpg
1
Export-PfxCertificate -FilePath C:\AzureManagementCert.pfx -Password $MyPwd -Cert $AzureCert (This will create the AzureManagementCert.pfx in the c:\ drive of your computer)



注:我们可以在上面的命令中通过管通符就可以执行查看及导出的操作,在此我分开了。
wKioL1Wjb6iiAaVVAADLf3JulPA266.jpg
Alternatively, if you want to do this through the UI using the MMC console you can do the below steps:
Select Certificates snap-in for My user account.
wKioL1Wjb6iAtBoIAAErKVw7_uA730.jpg
Navigate to Personal\Certificates and right click on the certificate you created and click export.
wKiom1WjbdLSG2QhAAER5xGwdOE843.jpg
导出私钥
wKioL1Wjb6nhn3dtAAEH1M1NBnE948.jpg
wKioL1Wjb6mAPjNrAAEeWdVC_0o747.jpg
设置一个密码
wKiom1WjbdLCI4dAAAEYXsO48xY286.jpg
选择导出路径
wKioL1Wjb6mw8aD6AAD5w74ETAM946.jpg
wKiom1WjbdOQCsftAADqHkWZizg025.jpg
我们用同样的方式再导出一张不带私钥的证书
wKiom1WjbdPRMu3pAAEG0mJrXiY097.jpg
wKiom1WjbdOgUbRPAAEhPPNjAIc019.jpg
wKiom1WjbdOwITIhAAD_0PCeqfs221.jpg
导出的证书
wKiom1WjbdPywjTGAADrQuX-P0o455.jpg
然后我们登陆azure,然后进入设置----证书管理---上载
wKioL1Wjb6qBiBKVAACsRuchbF0025.jpg
选择刚才导出的证书
wKiom1WjbdSgaL__AAB-eP6q8i0740.jpg
导出完成
wKioL1Wjb6qg5uMRAADKxXHy_is154.jpg
单击进入自动化账户,前提是我们已经创建了自动化管理账户----->资产---->添加设置
wKiom1Wjbdehxj_cAADUQVVdx6Y416.jpg
选择添加连接
wKiom1WjbdfidPW3AACFgg4bR90958.jpg
类型选择----Azure
wKiom1WjbdeiuyxDAACImrsoEHs458.jpg
定义连接类型及名称
wKioL1Wjb67hdSBeAACUPz5sAIA833.jpg
定义自动化账户证书名称及订阅id
wKiom1Wjbd2TXlMEAACrAbIRUUY262.jpg
添加完成
wKioL1Wjb7ShzyjOAADMRK3CdA0362.jpg
同样我们继续添加设置---选择凭据
wKiom1Wjbd7D1UOqAACCzRuishg050.jpg
选择类型为----证书;然后定义名称
wKioL1Wjb7XTwv35AACgjgDaCto819.jpg
选择导出的带私钥的证书文件
wKiom1WjbeHQ3_6PAACOwJNzsRs802.jpg
创建完成
wKiom1WjbeSD2D5cAADJR1oMq8Y613.jpg
最后我们还需要添加设置----变量
wKioL1Wjb7vBtyH3AACUfSgQ19s027.jpg
选择字符串类型及定义名称
wKioL1Wjb7vyusPcAACwnwInWjw610.jpg
wKioL1Wjb7uBDKmXAADzVYnxaKs220.jpg
有了证书我们再试试呢;前提是需要修改代码中的证书名称
wKioL1Wjb7uiPoQsAAEsJ2J9KsI969.jpg
接下来我们需要配置计划日程:提示必须发布此运行手册才可以添加计划
wKiom1WjbeWQZ1EsAACZabEvtGY173.jpg
我们单击仪表板,查看确实需要发布的
wKiom1WjbeXDwEgbAACYIksVIyQ480.jpg
接下来我们单击创作---->发布及完成
wKioL1Wjb7zjRVD6AADjkue75JM492.jpg
发布后,我们发现都可以手动启动该任务了
wKiom1WjbeWTkjAOAACqmFH5dRU596.jpg
如果需要修改代码,即可单击编辑即可修改,修改后,还需要重新发布。
我们再次配置计划日程:连接到新计划
wKiom1WjbeXim81NAACZwSwhgFk687.jpg
定义名称:
wKioL1Wjb7-CxsACAACIbadX8aU971.jpg
任务计划:
有一次、每小时、每天
wKiom1Wjbemyu7oSAACHg8oQpRM531.jpg
以上计划可以通过自己的真实环境需求来设置,因为我是测试环境,所以设置一次;
因为我现在做实验在14:10,所以我设置为16:20就运行,我们可以看看效果:
wKioL1Wjb8DCqjQQAACI9PlBcHQ814.jpg
输入serviername及vmname
wKiom1WjbenT4knAAAB3rgFpcIo020.jpg
创建完成:
wKioL1Wjb8PwCVCSAACfYeH6Px4922.jpg
我们首先确认的是windowsazure上vm都是关机状态:
wKiom1WjbeyRTbuUAACcTNXB-Fg433.jpg
等待完成后,我们查看程序执行代码结果:
wKioL1Wjb8PjbebsAAC5ET0NxcE011.jpg
查看仪表盘
wKiom1Wjbe3yboO3AACvVMtPqgs002.jpg
然后在start-azurevm内部进行查看作业状态
wKiom1Wjbe3xGJ8HAAC8f19njwg941.jpg
我们同样按照上面的方法操作再次导入一个stop-azurevm的脚本程序
选择stop-azurevm脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
workflow Start-VM
{
Param (
[parameter(Mandatory=$true)]
[String]
$VMName,
[parameter(Mandatory=$true)]
[String]
$ServiceName
)
$day = (Get-Date).DayOfWeek
if ($day -eq 'Saturday' -or $day -eq 'Sunday'){
exit
}
$subscriptionName = Get-AutomationVariable -Name "订阅名称"
$subscriptionID = Get-AutomationVariable -Name "订阅id"
$certificateName = Get-AutomationVariable -Name "证书文件"
$certificate = Get-AutomationCertificate -Name $certificateName
Set-AzureSubscription -SubscriptionName $subscriptionName -SubscriptionId $subscriptionID -Certificate $certificate
Select-AzureSubscription $subscriptionName
Start-AzureVM -Name $VMName -ServiceName $ServiceName
}



wKiom1Wjbe3D0S0eAADC7drG7JU703.jpg
我们同样按照以上的方法进行配置,发布及计划任务
wKioL1Wjb8SBG0iTAAC-SgHdUqQ501.jpg


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-86446-1-1.html 上篇帖子: Hadoop 和 HDInsight:Windows Azure 中的大数据 下篇帖子: Windows Azure 保留已存在的虚拟网络外网IP(云服务) Windows
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表