如何在ansible中配置azure模块

时间:2015-10-02 12:45:54

标签: azure ansible

关于主题的提及,我想在ansible中配置azure模块,也在github中找到azure模块,但我不知道如何设置,请帮我安装和配置。

1 个答案:

答案 0 :(得分:3)

  • 您需要安装sudo pip install azure==0.11.1(最新的azure版本> 1.0与ansible不兼容,但这里是github问题https://github.com/ansible/ansible-modules-core/pull/2114

  • 现在您需要在azure控制台中创建Storage_account(稍后在剧本中指定它)

  • 为VM生成ssh密钥

openssl req -x509 -key ~/.ssh/id_rsa -nodes -days 365 -newkey rsa:2048 -out ~/.ssh/ssh_key.pem

  • 为生成的密钥
  • 授予所有者权限

chmod 600 ~/.ssh/ssh_key.pem

  • 将此证书上传到您的azure订阅。我通过节点azure-cli

    做到了

    yum install npm or apt-get install npm

    nsudo npm install -g azure-cli

    azure account download

  • 按显示的链接下载您的订阅文件。

    azure account import <path to downloaded file>

  • 为您的订阅导出管理证书

    azure account cert export -f ~/.ssh/manage.cer

  • 此外,我需要通过azurecli获取VM映像名称,因为我无法在azure控制台中找到它。

azure vm image list | grep CentOS

然后你需要编写将启动azure VM的playbook:

- local_action:
    module: azure
    name: 'vm_name'
    role_size: Small
    image: '5112500ae3b842c8b9c604889f8753c3__OpenLogic-CentOS-67-20150815'
    password: 'some_pass'
    location: 'East US 2'
    user: admin
    wait: yes
    subscription_id: 'some subscription'    
    management_cert_path: '~/.ssh/manage.cer'
    storage_account: 'some account'
    endpoints: '22,8080,80'
  register: azure_vm


- add_host:
    name: '{{ azure_vm.public_dns_name }}'

- name: wait when instance become ready to use
  wait_for:
   host: '{{ azure_vm.public_dns_name }}'
   port: "22"
   delay: "60"
   timeout: "320"
   state: "started"

此剧本将使用admin用户和password创建Centos6计算机。目前我无法使用ssh-key身份验证创建计算机。我一直在msg: password parameter is required for new instance

更新:修正了证书生成程序。