Azure自动化部署运维浅谈

  

,,,,本次来谈一谈如何在Azure中实现一些简单的自动化运维的需求,一般来讲自动化运维我们通过很多第三方的工具平台实现,比较流行的目前有很多,比如老牌的厨师,傀儡,新兴的PowerShell DSC, ansible。这些应该都是耳熟能详的了。

,,,,

,,,,那么在Azure平台,如何实现自动化部署和运维?

,,,,方法其实很多,第一种方法比较传统,即仍然使用厨师,ansible等工具平台进行自动化运维,仍然可以保持以往的体验,无需学习任何新的技术

,,,,在Azure中也对这种方式提供了很多的技术支持,在应用市场中也可以找到这种镜像

 Azure自动化部署运维浅谈


 Azure自动化部署运维浅谈




,,,,在虚拟机里的扩展也可以找到很多相关的扩展

 Azure自动化部署运维浅谈




,,,,

,,,,这种方式对于已经很熟悉这些工具的人来说,应该是最容易的方式

,

,,,,当然,除此之后还有一些其他的方法也可以实现一些简单的自动化运维,部署的目的,如果是一些简单的需求,也可以考虑使用这类方法,比如说多台Windows VM想要加入同一个域里,或者是多台web服务器想要统一安装某些软件或者角色,这类较为简单的需求,则可以使用Azure自带的自定义脚本扩展来实现

,

,,,,举例来说,想要实现多台虚拟机加域,一般来讲加域可以通过批量推送脚本,或者是手动的方式来实现,在Azure中,实际上我们不需要登录到任何一台VM中,只需要在外部网络即可实现加域的效果,只要要加域的虚拟机到直流之间的网络是联通的,并且DNS可以正常解析到域名即可。

,

,,,,比如,现在我们有一台直流,两位web服务器,web01及web02,现在有两个需求

1。将两台服务器加入到域中

2。对两台服务器安装IIS角色


,,,,第一个需求,我们可以通过Azure自带的

,,,,直接在PowerShell中运行以下命令,将& lt;在里的内容替换为实际的内容即可

Set-AzureRmVMADDomainExtension域名& lt;域name>凭据& lt;域Cred>重启-ResourceGroupName & lt;资源组name>-VMName & lt; vm name>- name & lt;扩展Name>-TypeHandlerVersion“1.3”;-JoinOption 3

    这里又衍生出另一个问题,credential如果写在脚本中,很有可能是以明文的形式,这样肯定是不行的,如何能保证credential的安全呢?一种方法是可以通过Get-Credential实现,将账户密码直接以加密形式保存在变量里。但是这样的话加域过程中,还需要一些人为的参与。除此之外,其实还可以通过Azure的key vault服务,将账户密码保存在key vault中,通过powershell进行调取


    Azure Key Vault 是一个用于安全地存储和访问机密的工具。 可以通过Azure Key Vault保存例如API 密钥、密码或证书等关键信息。举例来说,我们可以把有权限加域的域账户账户名和密码保存在key vault中,然后通过PowerShell获取这些信息,作为加域的credential进行加域操作

    

    创建key vault的方法很简单,首先在Azure中选择好Key Vault服务,点击添加

Azure自动化部署运维浅谈



    这里输入一些基本信息,比如location, vault的名字等

Azure自动化部署运维浅谈


    创建完成后,因为我们是要保护一些明文信息,所以只需要选择secrets即可,如果是要保存证书,也可以选择certificates,选择generate secret

Azure自动化部署运维浅谈

    

    之后分别录入domain username以及domain password

Azure自动化部署运维浅谈


    Azure自动化部署运维浅谈


Azure自动化部署运维浅谈