小编Gui*_*sta的帖子

使用ansible启动EC2实例时如何等待user_data脚本运行?

我正在使用 Ansible 启动和配置当前基于未安装 Python 的 AMI (ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-20161020 (ami-40d28157)) 中的 EC2 实例从一开始。

由于大多数 ansible 模块需要在远程计算机上使用 python 才能工作,因此我尝试使用user_data脚本在启动实例上安装 python,而不是选择使用不同的 AMI 。

有点工作(Python 已正确安装),但 ansible ec2任务在 user_data 脚本完成运行之前返回,因此接下来的任务(实际配置实例的任务)失败并出现错误'/bin/sh: 1: /usr/bin/python: not found\r\n'

由于没有 python,我什至无法在远程主机上运行大多数任务,因此我无法简单地检查/usr/bin/python标记文件是否存在,或者检查系统日志输出等。

我考虑过nc -l $SOME_PORT在 user_data 脚本末尾添加 a 并使用wait_for模块检查它,但这对我来说听起来太麻烦了。

有没有办法使用ec2模块启动实例,以便它等待 user_data 脚本完成运行?

以供参考:

与我正在使用的类似的剧本:

- name: Create the EC2 instance
  hosts: localhost
  gather_facts: false
  vars: 
    name: myinstance
    ami: ami-40d28157
    #Other vars ommited for brevity
  tasks:
    - name: …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 ansible

5
推荐指数
2
解决办法
2万
查看次数

标签 统计

amazon-ec2 ×1

ansible ×1