In der stabilen Version von ansible ist dies fehlgeschlagen, selbst wenn ich das von awscli verwendete Profil in ec2 module festgelegt habe. Übrigens funktioniert ec2_group module einwandfrei. Ich habe die Entwicklungsversion ausprobiert und es hat funktioniert, aber es hat gut funktioniert, aber es hat gut funktioniert, aber es war [hacking / env-setup](https: /) in Installationsverfahren auf der offiziellen Website. /github.com/ansible/ansible/blob/devel/hacking/env-setup) fügt so viele Umgebungsvariablen wie möglich hinzu und ist etwas schwierig zu handhaben. Deshalb habe ich eine virtualenv-Umgebung erstellt und sie mit setup.py installiert .. Die Ausführungsumgebung ist OS X Yosemite + MacPorts. Sie können den Befehl virtualenv-2.7 durch virtualenv ersetzen.
virtualenv-2.7 env
source env/bin/activate
pip install --upgrade pip
pip install paramiko PyYAML Jinja2 httplib2
pip install boto awscli
git clone git://github.com/ansible/ansible.git --recursive
python setup.py install
cd ..
rehash
which ansible
Es ist nur ein Hobby, awscli zu diesem Zeitpunkt zu setzen. Wenn Sie zu virtualenv herauskommen, mit welchem Ansible, ist es OK
/Users/hoge/dev/unkoproject/server/infra/env/bin/ansible
Erstellen Sie als Nächstes ein Profil mit awscli.
aws configure --profile toilet
Verwenden Sie danach local_action entsprechend und führen Sie es aus.
echo "localhost ansible_python_interpreter=`which python`" > hosts
vi unko.yml
ansible-playbook -i hosts unko.yml
unko.yml hat folgenden Inhalt.
- name: Unko
hosts: 127.0.0.1
connection: local
tasks:
- name: Create Security Group
local_action:
module: ec2_group
name: unko_group
description: Security Group for Unko
region: ap-northeast-1
profile: toilet
rules:
- proto: tcp
from_port: 22
to_port: 22
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 80
to_port: 80
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 443
to_port: 443
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 25
to_port: 25
cidr_ip: 0.0.0.0/0
- name: Unko Web Server Instance
local_action:
module: ec2
region: ap-northeast-1
keypair: ToiletKey
group: unko_group
instance_type: t2.micro
image: ami-936d9d93
count: 1
wait: yes
profile: toilet
register: ec2
- name: Add Web Server instance to host group
local_action: add_host hostname={{ item.public_ip }} groupname=unko
with_items: ec2.instances
- name: Add tag to instances
local_action: ec2_tag resource={{ item.id }} region=ap-northeast-1 state=present profile=toilet
with_items: ec2.instances
args:
tags:
Name: Unko
- name: Wait for SSH to become available
pause: minutes=1
Ich wünschte, ich hätte etwas mehr Sinn für Namen.
Recommended Posts