基于terraform的ansible动态库存
terrible的Python项目详细描述
糟糕
可怕的(从terraform到ansible)从terraform创建动态的ansible库存 国家。
- 免费软件:apache软件许可证2.0
- 文档:https://terrible.readthedocs.io。
安装
要安装糟糕,请在终端中运行此命令。:
$ pip install terrible
一旦安装了符号链接或shell脚本,就可以添加到ansible 库存目录。
符号链接。:
$ ln -s /path/to/terrible inventory/terrible
简单的shell脚本包装器。:
#!/usr/bin/env bash terrible "$@"
使用量
Usage: terrible [OPTIONS] <root_dir> Terrible extracts Ansible inventory data from Terraform state. The <root_dir> is relative to the directory where Ansible is executed but defaults to ./terraform in the current directory. Options: --host TEXT Show varibles for single host --list List all variables --nometa Remove _meta from output --pretty Make json look pretty --help Show this message and exit.
功能
地形资源:
- vmware vSphere(vsphere_virtual_machine)
- aws实例(aws_instance)
常用参数
这些可以由所有资源指定。uniq配置详细信息如下 记录在下面的特定章节中。
- ansible_用户(可选)
- Ansible将连接到主机的用户。如果未指定,则默认为根。
- ansible_group(可选)
- 与资源关联的库存组。(添加默认全部组?)
- ansible_主机(可选)
- Ansible将连接到的主机。vmware默认为第一个接口的ip, network_interface:0但如果可以覆盖到特定的IP。自动气象站 默认为public_ip,配置为private_ip。 (TOdo:为值添加测试和错误条件)
vmware
定义terraformvsphere_virtual_machine资源时,请使用 custom_configuration_parameters阻止设置ansibe参数。
配置示例:
custom_configuration_parameters { ansible_group = "api-gateway" ansible_user = "ansible" ansible_host = "192.168.52.101" }
美国焊接学会
定义terraform aws-instance资源时,使用标记设置ansible 参数。
- ansible\u ssh\u私有密钥文件
- 用于连接到aws实例的键。价值是通向私人 与定义的AWS实例密钥匹配的密钥。默认值为 key_name + .pem。示例:如果aws实例密钥名是terraform 然后ansible将在当前工作目录中查找terraform.pem
配置示例:
tags { Name = "app1-aws" ansible_groups = "webapp" ansible_user = "ansible" ansible_host = "private_ip" ansible_ssh_private_key_file = "aws-keys/webapp-terraform.pem" }
目录布局
默认情况下,在ansible playbook根目录中查找terraform会很糟糕。:
. ├── ansible.cfg ├── inventory │ ├── group_vars │ └── terrible ├── playbooks │ └── site.yml ├── requirements.yml ├── roles │ └── example_role └── terraform ├── terraform.tf ├── terraform.tfstate ├── terraform.tfvars └── variables.tf
历史记录
0.1.2(2017-08-21)
- 通气版本测试
0.1.1(2017-08-21)
- 支持aws_instance和vsphere_virtual_machineterraform资源。
- 提供ansible参数:ansible_user,ansible_host,ansible_ssh_private_key_file
- 将Terraform资源定义为Ansible组。
0.1.0(2017-08-10)
- pypi上的第一个版本。