【实践】Ansible 购买阿里云 ECS

背景:

本文将介绍如何使用Ansible自动化购买阿里云ECS实例,更好的整合流程,自动化购买 ECS

操作步骤

1. 配置好阿里云 CLI命令行安装

参考之前写的文档

2. Ansible PlayBook

# Task ECS
- name: 安装 ECS
  hosts: localhost
  vars:
    ecs_password: 'Ecs-user123'
    release_time: '2023-08-15T15:59:00Z'
  tasks:
    - name: 购买 ECS 实例
      ansible.builtin.shell:
        cmd: >
           aliyun ecs RunInstances \
            --region cn-hangzhou \
            --RegionId 'cn-hangzhou' \
            --ImageId 'centos_7_9_x64_20G_alibase_20230613.vhd' \
            --VSwitchId 'vsw-bp1r3x5opt82hu0qmyoio' \
            --SecurityGroupId 'sg-bp1fkhr9p673rn627c0r' \
            --InternetMaxBandwidthIn 5 \
            --InternetMaxBandwidthOut 5 \
            --Password '{{ ecs_password }}' \
            --InternetChargeType PayByTraffic \
            --SystemDisk.Size 40 \
            --SystemDisk.Category cloud_efficiency \
            --AutoReleaseTime '{{ release_time }}' \
            --SpotStrategy SpotAsPriceGo \
            --InstanceChargeType PostPaid \
            --CreditSpecification Standard \
            --InstanceType 'ecs.t5-lc1m1.small' \
            --AutoPay true \
            --ImageOptions.LoginAsNonRoot true --version 2014-05-26 --force
      changed_when: false
      register: shell_result

    - name: 提取JSON 信息
      ansible.builtin.set_fact:
        parsed_data: "{{ shell_result.stdout }}"

    - name: 提取 ID
      ansible.builtin.set_fact:
        ecs_ids: "{{ parsed_data.InstanceIdSets.InstanceIdSet }}"

    - name: 提取 ID 字符串
      ansible.builtin.set_fact:
        ecs_ids_str: "{{ ecs_ids | to_json }}"

    - name: 打印 ID
      ansible.builtin.debug:
        var: ecs_ids_str

    - name: 等待 30s (方便公网IP)
      ansible.builtin.wait_for:
        sleep: 30

    - name: 查询 公网IP
      ansible.builtin.shell:
        cmd: >
          aliyun ecs DescribeInstances \
            --region cn-hangzhou \
            --RegionId 'cn-hangzhou' \
            --InstanceIds '{{ ecs_ids_str }}'
      changed_when: false
      register: shell_result1

    - name: 提取JSON 信息1
      ansible.builtin.set_fact:
        parsed_data1: "{{ shell_result1.stdout }}"

    - name: 提取 详细信息
      ansible.builtin.set_fact:
        ecs_details: "{{ parsed_data1.Instances.Instance }}"

    - name: 打印 详细信息
      ansible.builtin.debug:
        var: ecs_details

3. 执行

PLAY [安装 ECS] *******************************************************************************************************************************

TASK [Gathering Facts] ************************************************************************************************************************
ok: [localhost]

TASK [购买 ECS 实例] **************************************************************************************************************************
ok: [localhost]

TASK [提取JSON 信息] **************************************************************************************************************************
ok: [localhost]

TASK [提取 ID] ********************************************************************************************************************************
ok: [localhost]

TASK [提取 ID 字符串] *************************************************************************************************************************
ok: [localhost]

TASK [打印 ID] ********************************************************************************************************************************
ok: [localhost] => {
    "ecs_ids_str": "[\"i-bp1hnd3bgw6leyqss6mw\"]"
}

TASK [等待 30s (方便公网IP)] ******************************************************************************************************************

总结:

Ansible的自动化能力使您能够快速定义购买ECS实例的任务和参数,并在多个主机上进行批量操作。此外,Ansible的可重复性和可扩展性使得在未来购买更多ECS实例时也能轻松应对。通过将购买过程自动化,您可以将更多时间和精力投入到其他重要的任务和项目中。

希望通过本文,读者能够了解到使用Ansible自动化购买阿里云ECS实例的方法,并体验到其带来的便利和效率提升。无论是个人开发者还是企业用户,通过Ansible的自动化功能,购买和管理阿里云ECS实例都变得更加简单和高效。借助自动化工具的力量,您可以更好地利用云计算资源,提升工作效率,并满足不断增长的计算需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱写代码的小任

感谢老板打赏,我将会再接再厉

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值