使用Ansible为EBS卷配置EC2实例时如何格式化这些卷?

时间:2016-10-31 18:13:19

标签: amazon-ec2 ansible lvm

我有几个ansible脚本为各种服务提供EC2实例,例如consul,kong和一些ECS任务。我目前可以使用ec2_remote_facts:过滤掉实例,以收集需要额外存储空间并使用ec2_vol:.

的实例
- name: Gather EC2 Facts
  ec2_remote_facts:
    region: "{{ region }}"
    filters:
        "things" 
  register: info

- name: ec2-ebs
  ec2_vol:
    instance: "{{ item.id }}"
    volume_size: 5
    volume_type: gp2
    device_name: xvdd
    region: "{{ region }}"
    name: "ebs-{{ environmentName }}-{{ item.id }}"
  register: volumes
  with_items: "{{ info.instances }}"

- name: ecs-tag
  ec2_tag:
    resource: "{{ item.volume_id }}"
    region: "{{ region }}"
    state: present
    tags:
      Environment: "{{ environmentName }}"
  with_items: "{{ volumes.results }}"

我的解决方案是继续使用shell:单独ssh到每台计算机上,并在每台计算机上运行相当于vgcreate blah xvdd; lvcreate blah-volume blah; format的脚本。但是,如果没有大量的工作,我不知道如何使它成为幂等的,如果我们扩展,那么自定义shell脚本的灵活性就会降低。

我找到了ansible lvol:,但它要求我在新的ec2机器上运行。我们正在执行hosts:localhost,我认为这意味着我们只是在我的机器上通过ansible使用aws-cli,这意味着我实际上无法访问ec2实例。

1 个答案:

答案 0 :(得分:0)

您可以使用add_host动态地将tge生成的主机添加到广告资源中 比在新库存主机/组上运行一个playbook来执行所需的配置。

注意:格式文件系统的模块以及安装磁盘的模块。