
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
322 lines
9.2 KiB
YAML
322 lines
9.2 KiB
YAML
---
|
|
|
|
- name: install base packages
|
|
yum: name={{ item }} state=present
|
|
with_items:
|
|
- wget
|
|
- git
|
|
|
|
- name: check epel presence
|
|
command: rpm -q epel-release
|
|
register: epel_presence
|
|
ignore_errors: yes
|
|
|
|
- name: check atomic repo presence
|
|
command: rpm -q atomic-release
|
|
register: atomic_presence
|
|
ignore_errors: yes
|
|
|
|
#- name: get epel version
|
|
# command: >
|
|
# wget -q {{ epel_base_url }} -O - | grep -oE "(href=\"epel-release-6-[0-9,.].*)" | cut -d\" -f2
|
|
# register: epel_file_name
|
|
# when: epel_presence.rc != 0
|
|
|
|
- name: install epel
|
|
yum: name={{ epel_base_url }}/{{ epel_file_name }} state=present
|
|
when: epel_presence.rc != 0
|
|
|
|
- name: install atomic repo
|
|
yum: name={{ atomic_base_url }}/{{ atomic_file_name }} state=present
|
|
when: atomic_presence.rc != 0
|
|
|
|
- name: yum update
|
|
yum: name=* state=latest update_cache=yes
|
|
|
|
- name: install related packages
|
|
yum: name={{ item }} state=present
|
|
with_items:
|
|
- cobbler
|
|
- cobbler-web
|
|
- createrepo
|
|
- mkisofs
|
|
- syslinux
|
|
- debmirror
|
|
- pykickstart
|
|
- cman
|
|
- bind
|
|
- rsync
|
|
- dhcp
|
|
- xinetd
|
|
- tftp-server
|
|
- gcc
|
|
- httpd
|
|
- libselinux-python
|
|
|
|
- name: turn off iptables
|
|
service: name=iptables state=stopped enabled=no
|
|
|
|
- name: replace config files
|
|
copy: src={{ item.name }} dest={{ item.dest }}
|
|
with_items:
|
|
- { name: rsync, dest: /etc/xinetd.d/rsync }
|
|
- { name: debmirror.conf, dest: /etc/debmirror.conf }
|
|
|
|
- name: restart xinetd service
|
|
service: name=xinetd state=restarted enabled=yes
|
|
|
|
- name: configure interface for dhcp
|
|
command: ifconfig {{ mgmt_nic }}:1 {{ mgmt_next_ip }} netmask {{ mgmt_subnet_mask }}
|
|
when: not mgmt_ip_same
|
|
|
|
- name: copy httpd configuration files
|
|
file: src={{ item }} dest=/etc/httpd/conf.d/{{ item }} mode=0644
|
|
with_items:
|
|
- cobbler_web.conf
|
|
- ssl.conf
|
|
notify:
|
|
restart httpd
|
|
|
|
- name: disable selinux
|
|
selinux: state=disabled
|
|
|
|
- name: disable selinux real time
|
|
shell: echo 0 > /selinux/enforce
|
|
|
|
- name: copy cobbler configuration files
|
|
template: src={{ item.name }} dest=/etc/cobbler/{{ item.file_name }} mode=0644
|
|
with_items:
|
|
- { name: tftpd.template, file_name: tftpd.template }
|
|
- { name: modules.conf, file_name: modules.conf }
|
|
- { name: dhcp.template.nodocker.j2, file_name: dhcp.template }
|
|
- { name: named.template.nodocker.j2, file_name: named.template }
|
|
- { name: settings.j2, file_name: settings }
|
|
notify:
|
|
- restart cobbler
|
|
- cobbler sync
|
|
|
|
- meta: flush_handlers
|
|
|
|
- name: clone snippets
|
|
git: repo={{ compass_adapter_source }}
|
|
dest=/opt/compass-adapters
|
|
version={{ compass_adapter_version }}
|
|
update=yes
|
|
force=yes
|
|
|
|
- name: remove old cobbler folders
|
|
shell: rm -rf path=/var/lib/cobbler/{{ item }}
|
|
with_items:
|
|
- snippets
|
|
- scripts
|
|
- triggers
|
|
- kickstarts
|
|
|
|
- name: create cobbler folders
|
|
file: path=/var/lib/cobbler/{{ item }} state=directory mode=0755
|
|
with_items:
|
|
- snippets
|
|
- scripts
|
|
- triggers
|
|
- kickstarts
|
|
|
|
- name: copy snippets to cobbler folder
|
|
shell: cp -rf /opt/compass-adapters/cobbler/{{ item }}/* /var/lib/cobbler/{{ item }}/
|
|
with_items:
|
|
- snippets
|
|
- scripts
|
|
- triggers
|
|
- kickstarts
|
|
notify:
|
|
cobbler sync
|
|
|
|
- name: change snippets mode
|
|
file: path=/var/lib/cobbler mode=0755 recurse=yes
|
|
|
|
- name: create cblr_ks folder
|
|
file: path=/var/www/cblr_ks mode=0755 state=directory
|
|
|
|
- name: change kickstart mode
|
|
file: path=/var/lib/cobbler/kickstarts mode=0666 recurse=yes
|
|
|
|
- name: disable selinux
|
|
selinux: state=disabled
|
|
|
|
- name: disable selinux real time
|
|
command: echo 0 > /selinux/enforce
|
|
|
|
- name: clean cobbler log folder
|
|
file: path=/var/log/cobbler state=absent
|
|
|
|
- name: create cobbler log directories
|
|
file: path={{ item }} mode=0777 state=directory recurse=yes
|
|
with_items:
|
|
- /var/log/cobbler
|
|
- /var/log/cobbler/anamon
|
|
- /var/log/cobbler/tasks
|
|
|
|
- name: create cobbler ppa repo dir
|
|
file: path=/var/lib/cobbler/repo_mirror/{{ item.ppa_repo_name }}/conf
|
|
state=directory
|
|
mode=0644
|
|
recurse=yes
|
|
with_items: distros
|
|
|
|
- name: copy distributions to ubuntu ppa repo
|
|
template: src=distributions
|
|
dest=/var/lib/cobbler/repo_mirror/ubuntu_12_04_ppa_repo/conf/distributions
|
|
mode=0644
|
|
when: ubuntu_1204 in distros
|
|
|
|
- name: copy distribution to ubuntu 14.04 ppa repo
|
|
template: src=distributions
|
|
dest=/var/lib/cobbler/repo_mirror/ubuntu_14_04_ppa_repo/conf/distributions
|
|
mode=0644
|
|
when: ubuntu_1404 in distros
|
|
|
|
- name: start cobbler and httpd services
|
|
service: name={{ item }} state=restarted enabled=yes
|
|
with_items:
|
|
- httpd
|
|
- cobblerd
|
|
|
|
- name: download ppa repo images
|
|
get_url: url={{ item.ppa_lab_url }} dest=/var/lib/cobbler/repo_mirror/{{ item.ppa_repo_name }}.tar.gz
|
|
with_items: distros
|
|
when: region == "lab"
|
|
|
|
- name: download ppa repo images
|
|
get_url: url={{ item.ppa_us_url }} dest=/var/lib/cobbler/repo_mirror/{{ item.ppa_repo_name }}.tar.gz
|
|
with_items: distros
|
|
when: region == "us"
|
|
|
|
- name: untar ppa repo images
|
|
unarchive: src=/var/lib/cobbler/repo_mirror/{{ item.ppa_repo_name }}.tar.gz
|
|
dest=/var/lib/cobbler/repo_mirror/
|
|
copy=no
|
|
with_items: distros
|
|
|
|
- name: add repos
|
|
command: cobbler repo add --name {{ item.ppa_repo_name }} --mirror=/var/lib/cobbler/repo_mirror/{{ item.ppa_repo_name }} --mirror-locally=Y --arch=x86_64
|
|
with_items: distros
|
|
args:
|
|
creates: /opt/repo_added.txt
|
|
ignore_errors: yes
|
|
run_once: True
|
|
|
|
- name: remove ubuntu default repo
|
|
command: cobbler repo remove --name {{ item }}
|
|
with_items:
|
|
- "{{ ubuntu }}"
|
|
- "{{ ubuntu_1404 }}"
|
|
ignore_errors: yes
|
|
|
|
- name: cobbler repo sync
|
|
command: cobbler reposync
|
|
|
|
- name: download loader files
|
|
get_url: url={{ cobbler_loaders_url }} dest=/var/lib/cobbler/
|
|
|
|
- name: untar loaders file
|
|
unarchive: src=/var/lib/cobbler/loaders.tar.gz dest=/var/lib/cobbler/
|
|
copy=no
|
|
|
|
- name: cobbler get loaders
|
|
command: cobbler get-loaders
|
|
|
|
- name: create directory for images
|
|
file: path=/var/lib/cobbler/iso state=directory
|
|
|
|
- name: download images
|
|
get_url: url={{ item.iso_lab_url }} dest=/var/lib/cobbler/iso/{{ item.name }}.iso mode=0644
|
|
with_items: distros
|
|
when: region == "lab"
|
|
|
|
- name: download images
|
|
get_url: url={{ item.iso_us_url }} dest=/var/lib/cobbler/iso/{{ item.name }}.iso mode=0644
|
|
with_items: distros
|
|
when: region == "us"
|
|
|
|
- name: mount_info
|
|
command: mount
|
|
register: mount_info
|
|
|
|
- name: create mount point
|
|
file: name=/mnt/{{ item.name }} state=directory
|
|
with_items: distros
|
|
when: mount_info.stdout.find('CentOS') == -1 and mount_info.stdout.find('Ubuntu') == -1
|
|
ignore_errors: yes
|
|
|
|
- name: mount images
|
|
shell: mount -o loop /var/lib/cobbler/iso/{{ item.name }}.iso /mnt/{{ item.name }}
|
|
with_items: distros
|
|
when: mount_info.stdout.find('CentOS') == -1 and mount_info.stdout.find('Ubuntu') == -1
|
|
args:
|
|
creates: /opt/image_mounted.txt
|
|
ignore_errors: yes
|
|
run_once: True
|
|
|
|
- name: import distros
|
|
command: cobbler import --path=/mnt/{{ item.name }} --name {{ item.name }} --arch=x86_64 --kickstart=/var/lib/cobbler/kickstarts/default.ks --breed={{ item.breed }}
|
|
with_items: distros
|
|
args:
|
|
creates: /opt/distro_imported.txt
|
|
ignore_errors: yes
|
|
run_once: True
|
|
|
|
#- name: add profiles
|
|
# command: cobbler profile add --name={{ item.name }} --repo={{ item.ppa_repo_name }} --distro={{ item.name }} --ksmeta="tree=http://{{ mgmt_next_ip }}/cobbler/ks_mirror/{{ item.name }}" --kickstart=/var/lib/cobbler/kickstarts/{{ item.kickstart }} --kopts="{{ item.kopts }}"
|
|
# with_items: distros
|
|
# args:
|
|
# creates: /opt/profile_added.txt
|
|
# ignore_errors: yes
|
|
# run_once: True
|
|
|
|
- name: generate public key file for ssh
|
|
template: src=id_rsa.pub.j2 dest=/var/lib/cobbler/id_rsa.pub
|
|
when: push_ssh_key is defined
|
|
|
|
- name: generate ssh key for root
|
|
user: name=root generate_ssh_key=yes ssh_key_bits=2048 ssh_key_file=.ssh/id_rsa
|
|
when: push_ssh_key is not defined
|
|
|
|
- name: edit profiles
|
|
shell: cobbler profile edit --name={{ item.name }} --repo={{ item.ppa_repo_name }} --distro={{ item.name }} --ksmeta="tree=http://{{ mgmt_next_ip }}/cobbler/ks_mirror/{{ item.name }}" --kickstart=/var/lib/cobbler/kickstarts/{{ item.kickstart }} --kopts="{{ item.kopts }}"
|
|
with_items: distros
|
|
|
|
- name: edit profiles with push ssh key option
|
|
shell: cobbler profile edit --name={{ item.name }} --repo={{ item.ppa_repo_name }} --distro={{ item.name }} --ksmeta="tree=http://{{ mgmt_next_ip }}/cobbler/ks_mirror/{{ item.name }} push_ssh_keys=/var/lib/cobbler/id_rsa.pub" --kickstart=/var/lib/cobbler/kickstarts/{{ item.kickstart }} --kopts="{{ item.kopts }}"
|
|
with_items: distros
|
|
when: push_ssh_key is defined
|
|
|
|
- name: remove ubuntu default repo
|
|
command: cobbler repo remove --name {{ item }}
|
|
with_items:
|
|
- "{{ ubuntu }}"
|
|
- "{{ ubuntu_1404 }}"
|
|
ignore_errors: yes
|
|
|
|
- name: cobbler repo sync again
|
|
shell: cobbler reposync
|
|
|
|
- name: cobbler sync
|
|
shell: cobbler sync
|
|
|
|
- name: restart xinetd
|
|
service: name=xinetd state=restarted
|
|
|
|
- name: restart dhcpd
|
|
service: name=dhcpd state=restarted enabled=yes
|
|
|
|
- name: cobbler check
|
|
shell: cobbler check
|
|
|
|
- name: get all systems
|
|
shell: cobbler system list
|
|
register: cobbler_systems
|
|
|
|
- name: remove all systems
|
|
shell: cobbler system remove --name {{ item }}
|
|
with_items: cobbler_systems.stdout_lines
|
|
when: cobbler_systems and test is defined and test == True
|