vmware.coreos-bootstrap

构建状态

重要提示:在 ansible 2.1 之后,以下方法不再有效:

ansible_python_interpreter="PATH=/home/core/bin:$PATH python"

好消息是,这已不再需要。现在可以使用以下配置,它适用于新旧版本的 ansible,并且更简单:

ansible_python_interpreter="/home/core/bin/python"

coreos-bootstrap

为了有效运行 ansible,目标机器需要有一个 Python 解释器。CoreOS 机器是极简的,不自带任何 Python 版本。为了解决这个问题,我们可以安装 pypy,这是一种轻量级的 Python 解释器。coreos-bootstrap 角色将为我们安装 pypy,我们将更新库存文件以使用安装的 Python 解释器。

当前版本:0.6.3

安装

ansible-galaxy install vmware.coreos-bootstrap

配置你的项目

与典型角色不同,你需要配置 Ansible 来使用 CoreOS 主机的替代 Python 解释器。这可以通过在库存文件中添加一个 coreos 组,并设置该组的变量来使用新的 Python 解释器来完成。这样,你可以使用 ansible 来管理 CoreOS 和非 CoreOS 主机。只需将所有带有 CoreOS 的主机放入 coreos 库存组中,它将自动使用指定的 Python 解释器。

[coreos]
host-01
host-02

[coreos:vars]
ansible_ssh_user=core
ansible_python_interpreter="/home/core/bin/python"

这将配置 ansible 使用 /home/core/bin/python 中的 Python 解释器,该解释器将由 coreos-bootstrap 角色创建。

引导 Playbook

现在你可以简单地将以下内容添加到你的 playbook 文件中,并在 site.yml 中包含它,以便它在 coreos 组的所有主机上运行。

- hosts: coreos
  gather_facts: False
  roles:
    - vmware.coreos-bootstrap

确保将 gather_facts 设置为 false, 否则 ansible 会尝试先使用尚未安装的 Python 收集系统信息!

示例 Playbook

引导后,你可以像往常一样使用 ansible 来管理系统服务,安装 Python 模块(通过 pip),并运行容器。以下是一个基本示例,它启动 etcd 服务,安装 docker-py 模块,然后使用 ansible 的 docker 模块拉取并启动一个基本的 nginx 容器。

- name: Nginx 示例
  hosts: web
  tasks:
    - name: 启动 etcd
      service: name=etcd.service state=started
      sudo: yes
      sudo_user: root

    - name: 安装 docker-py
      pip: name=docker-py

    - name: 拉取容器
      raw: docker pull nginx:1.7.1

    - name: 启动 nginx 容器
      docker:
        image="nginx:1.7.1"
        name="example-nginx"
        ports="8080:80"
        state=running

许可证

MIT

关于项目

CoreOS bootstrap

安装
ansible-galaxy install vmware.coreos-bootstrap
许可证
mit
下载
9.8k
拥有者