Ansible 2.0中的新模块使用Python Shade库 。 Shade目前不为CentOS或Red Hat Enterprise Linux打包,如果您使用的是其中一个发行版,则需要使用pip安装。 Shade可用作最新版本的Ubuntu和Fedora的操作系统软件包,并且可以通过常规机制安装。
yum install -y epel-release
yum install -y python-pip python-devel libffi-devel openssl-devel gcc ansible
pip install -U pip
pip install shade
这二个模块最大的变化是认证。 使用nova_compute模块,在任务中将认证详细信息指定为选项。 使用新的os_server模块,认证是从由“openrc”脚本设置的环境变量中提取的。 大多数OpenStack安装有一个选项,可以在Horizon的“访问和安全”下为您的特定租户下载openrc。 要设置这些变量,只需在运行playbook之前先运行openrc脚本,如下所示:
./openrc.sh
编写一个在OpenStack云中创建实例的例子:
vi openstack_deploy.yaml
---
-
gather_facts: false
hosts: localhost
name: "Deploy on OpenStack"
tasks:
-
os_server:
auto_floating_ip: yes
flavor: 1C_1024M_50G
image: 69e26018-2456-4f5b-aaeb-8821f23a4329
key_name: ansible_key
name: test142
network: vlan106
security_groups: default
state: present
wait: true
运行测试
# . ./openrc.sh
# ansible-playbook -vv openstack_deploy.yaml
这应该在OpenStack上部署名为“test142”的实例。输出将如下所示:
Using /etc/ansible/ansible.cfg as config file
PLAYBOOK: openstack_deploy.yaml *******************************************************
1 plays in openstack_deploy.yaml
PLAY [Deploy on OpenStack] *****************************************************
TASK [os_server] ***************************************************************
task path: /root/openstack_deploy.yaml:8
... ...
PLAY RECAP *********************************************************************
localhost : ok=1 changed=1 unreachable=0 failed=0
在Openstack云中检查实例是否已创建成功。