81 lines
2.2 KiB
YAML
81 lines
2.2 KiB
YAML
---
|
|
- name: check/create instance
|
|
hosts: localhost
|
|
user: copr
|
|
gather_facts: False
|
|
|
|
vars:
|
|
- keypair: buildsys
|
|
- image: ami-0000000e
|
|
- instance_type: m1.builder
|
|
- security_group: builder
|
|
|
|
tasks:
|
|
- name: spin it up
|
|
local_action: ec2 keypair={{ keypair }} image={{ image }} type={{ instance_type }} wait=true group={{ security_group }}
|
|
register: inst_res
|
|
|
|
- name: get its internal ip b/c openstack is sometimes stupid
|
|
local_action: shell euca-describe-instances {{ inst_res.instances[0].id }} | grep INSTANCE | cut -f 18
|
|
register: int_ip
|
|
|
|
- name: add it to the special group
|
|
local_action: add_host hostname={{ int_ip.stdout }} groupname=builder_temp_group
|
|
|
|
- name: wait for the host to be hot
|
|
local_action: wait_for host={{ int_ip.stdout }} port=22 delay=5 timeout=600
|
|
|
|
- debug: msg="IP={{ int_ip.stdout }}"
|
|
|
|
- hosts: builder_temp_group
|
|
user: root
|
|
vars:
|
|
- files: files/
|
|
|
|
tasks:
|
|
- name: edit hostname to be instance name
|
|
action: shell hostname `curl -s http://169.254.169.254/2009-04-04/meta-data/instance-id`
|
|
|
|
- name: install pkgs
|
|
action: yum state=present pkg={{ item }}
|
|
with_items:
|
|
- rsync
|
|
- openssh-clients
|
|
- libselinux-python
|
|
- libsemanage-python
|
|
|
|
- name: add repos
|
|
action: copy src={{ files }}/{{ item }} dest=/etc/yum.repos.d/{{ item }}
|
|
with_items:
|
|
- builder.repo
|
|
- epel6.repo
|
|
|
|
- name: install additional pkgs
|
|
action: yum state=present pkg={{ item }}
|
|
with_items:
|
|
- mock
|
|
- createrepo
|
|
- yum-utils
|
|
|
|
- name: make sure newest rpm
|
|
action: yum name=rpm state=latest
|
|
|
|
- name: mockbuilder user
|
|
action: user name=mockbuilder groups=mock
|
|
|
|
- name: mockbuilder .ssh
|
|
action: file state=directory path=/home/mockbuilder/.ssh mode=0700 owner=mockbuilder group=mockbuilder
|
|
|
|
- name: mockbuilder authorized_keys
|
|
action: authorized_key user=mockbuilder key='{{ lookup('file', '/home/copr/provision/files/buildsys.pub') }}'
|
|
|
|
- name: put updated mock configs into /etc/mock
|
|
action: copy src={{ files }}/mock/{{ item }} dest=/etc/mock
|
|
with_items:
|
|
- site-defaults.cfg
|
|
- epel-5-x86_64.cfg
|
|
- epel-5-i386.cfg
|
|
- fedora-20-x86_64.cfg
|
|
- fedora-20-i386.cfg
|
|
- epel-7-x86_64.cfg
|
|
|