
This reverts commit 2614e5fa95aab680fb6f9287831e50c65f76f72c. The repository is actually maintained, the authors merely misunderstood the stackforge namespace retirement maintenance announcements[1] and didn't realize they needed to notify us of that status. Reverting the repository to its former state in preparation for a namespace move in a coming project rename maintenance. [1] http://lists.openstack.org/pipermail/openstack-infra/2015-August/003119.html Change-Id: I6ccdcd8f8a084711c265e42c77b3b4159af27b24
134 lines
4.0 KiB
YAML
134 lines
4.0 KiB
YAML
---
|
|
|
|
- name: install mkisofs
|
|
yum: pkg=mkisofs state=installed
|
|
when: ansible_os_family == "Redhat"
|
|
|
|
- name: install mkisofs in debian
|
|
apt: pkg=mkisofs state=installed
|
|
when: ansible_os_family == "Debian"
|
|
|
|
- name: clean up docker directory
|
|
file: path=~/docker-cobbler/{{ item }} state=absent
|
|
with_items:
|
|
- Dockerfile
|
|
- files
|
|
|
|
- name: clean up log directory
|
|
file: path=/var/log/cobbler state=absent
|
|
|
|
- name: create directory for docker and files
|
|
file: path=~/docker-cobbler/files state=directory
|
|
|
|
- name: create directories for images
|
|
file: path=~/docker-cobbler/images/{{ item }} state=directory
|
|
with_items:
|
|
- "{{ centos }}"
|
|
- "{{ ubuntu }}"
|
|
- "{{ ubuntu_1404 }}"
|
|
|
|
- name: download images
|
|
get_url: url={{ item.name }} dest=/tmp/{{ item.filename }} mode=0644
|
|
with_items:
|
|
- { name: "{{ centos_url }}", filename: "{{ centos }}.iso" }
|
|
- { name: "{{ ubuntu_url }}", filename: "{{ ubuntu }}.iso" }
|
|
- { name: "{{ ubuntu_1404_url }}", filename: "{{ ubuntu_1404 }}.iso" }
|
|
|
|
- name: mount info
|
|
command: mount
|
|
register: mount_info
|
|
|
|
- name: mount images
|
|
shell: mount -o loop /tmp/{{ item }}.iso ~/docker-cobbler/images/{{ item }}
|
|
# mount: name=~/docker-cobbler/images/{{ item }} src=/tmp/{{ item }}.iso opts=loop fstype=iso9660 state=mounted
|
|
with_items:
|
|
- "{{ centos }}"
|
|
- "{{ ubuntu }}"
|
|
- "{{ ubuntu_1404 }}"
|
|
when: mount_info.stdout.find('CentOS') == -1
|
|
|
|
- name: copy Dockerfile to ~/docker-cobbler
|
|
template: src=Dockerfile.j2 dest=~/docker-cobbler/Dockerfile mode=0644
|
|
|
|
- name: copy dhcp.template
|
|
template: src=dhcp.template.j2
|
|
dest=~/docker-cobbler/files/dhcp.template
|
|
mode=0644
|
|
|
|
- name: copy named.template
|
|
template: src=named.template.j2
|
|
dest=~/docker-cobbler/files/named.template
|
|
mode=0644
|
|
|
|
- name: copy start script
|
|
template: src=start.sh.j2
|
|
dest=~/docker-cobbler/files/start.sh
|
|
mode=0755
|
|
|
|
- name: copy post sync script
|
|
template: src=fix_ks_server.py.j2
|
|
dest=~/docker-cobbler/files/fix_ks_server.py
|
|
mode=0755
|
|
|
|
- name: copy admin key
|
|
copy: src={{ shared_dir }}/keys/admin.pem
|
|
dest=~/docker-cobbler/files/admin.pem
|
|
mode=0644
|
|
when: "'chef' in {{ pkg_installer }}"
|
|
|
|
- name: copy chef validator key
|
|
copy: src={{ shared_dir }}/keys/chef-validator.pem
|
|
dest=~/docker-cobbler/files/chef-validator.pem
|
|
mode=0644
|
|
when: "'chef' in {{ pkg_installer }}"
|
|
|
|
- name: cobbler container?
|
|
command: docker ps -a
|
|
register: containers
|
|
|
|
- name: remove cobbler container if any
|
|
shell: docker rm -f cobbler-dev
|
|
when: containers.stdout.find('cobbler-dev') != -1
|
|
|
|
- name: check if 'cobbler' image already exists
|
|
command: docker images cobbler
|
|
register: image
|
|
|
|
- name: remove image 'cobbler' if it exists and --rebuild is specified
|
|
shell: docker rmi -f cobbler
|
|
when: image.stdout.find('cobbler') != -1 and rebuild
|
|
|
|
- name: restart docker daemon if debian
|
|
service: name=docker state=restarted
|
|
when: ansible_os_family == "Debian"
|
|
|
|
- name: build a docker image for cobbler
|
|
shell: docker build -t cobbler ~/docker-cobbler
|
|
when: image.stdout.find('cobbler') == -1 or rebuild
|
|
|
|
- name: fork image and run a new cobbler container
|
|
shell: docker run --name=cobbler-dev -d {{ cobbler_port_mapping }} {{ image_volume_mapping }} -i -t cobbler
|
|
notify:
|
|
restart dhcp-relay
|
|
|
|
- name: extract cobbler ip info
|
|
shell: echo `docker inspect cobbler-dev | awk -F '"' '/IPAdd/ {print $4}'` > /tmp/ip
|
|
|
|
- name: quote the ip first
|
|
shell: echo `sed 's/\(.*\)/"\1"/g' /tmp/ip` > /tmp/dynamic.yml
|
|
|
|
- name: add cobbler_docker_ip before cobbler ip
|
|
shell: "echo `sed '/^/ s/^/cobbler_docker_ip: /' /tmp/dynamic.yml` > /tmp/dynamic.yml"
|
|
|
|
- name: write cobbler_ip to local var
|
|
fetch: src=/tmp/dynamic.yml dest={{ shared_dir }}/dynamic.yml mode=0644 flat=yes
|
|
|
|
- name: include cobbler dynamic vars
|
|
include_vars: "{{ shared_dir }}/dynamic.yml"
|
|
|
|
- include: dhcp-relay-redhat.yml
|
|
when: ansible_os_family == "Redhat"
|
|
|
|
- include: dhcp-relay-debian.yml
|
|
when: ansible_os_family == "Debian"
|