aboutsummaryrefslogtreecommitdiffstats
path: root/resources/tools/testbed-setup/ansible/roles
diff options
context:
space:
mode:
Diffstat (limited to 'resources/tools/testbed-setup/ansible/roles')
-rw-r--r--resources/tools/testbed-setup/ansible/roles/cobbler/files/Dockerfile96
-rw-r--r--resources/tools/testbed-setup/ansible/roles/cobbler/files/etc/cobbler/dhcp.template86
-rw-r--r--resources/tools/testbed-setup/ansible/roles/cobbler/files/etc/httpd/conf.d/cobbler_web.conf33
-rw-r--r--resources/tools/testbed-setup/ansible/roles/cobbler/files/supervisord/supervisord.conf42
-rw-r--r--resources/tools/testbed-setup/ansible/roles/cobbler/files/var/lib/cobbler/kickstarts/ubuntu-18.04.2-server-x86_64.seed137
-rw-r--r--resources/tools/testbed-setup/ansible/roles/cobbler/tasks/main.yaml51
-rw-r--r--resources/tools/testbed-setup/ansible/roles/cobbler/tasks/ubuntu-18.04.2-server-x86_64.yaml39
7 files changed, 0 insertions, 484 deletions
diff --git a/resources/tools/testbed-setup/ansible/roles/cobbler/files/Dockerfile b/resources/tools/testbed-setup/ansible/roles/cobbler/files/Dockerfile
deleted file mode 100644
index 8d70c0b495..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/cobbler/files/Dockerfile
+++ /dev/null
@@ -1,96 +0,0 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM centos:7
-
-MAINTAINER csit-dev <csit-dev@lists.fd.io>
-LABEL Description="CSIT cobbler service image."
-LABEL Version="0.1"
-
-# Build arguments
-ARG cobbler_sys_pass
-ARG cobbler_web_pass
-ARG cobbler_ip_addr
-ARG cobbler_http_port=60080
-ARG cobbler_https_port=60443
-
-# Install dependencies
-RUN yum -y install epel-release \
- && yum -y install \
- cobbler \
- cobbler-web \
- fence-agents \
- python-pip \
- curl \
- dhcp \
- bind \
- file \
- debmirror \
- net-tools \
- rsync \
- pykickstart \
- supervisor \
- wget \
- which \
- && yum clean all \
- && rm -rf /var/cache/yum
-
-# Workaround for Cobbler 2.8.4 bug
-RUN pip2.7 install -U django==1.9.13
-
-# Copy CSIT configration
-COPY supervisord/supervisord.conf /etc/supervisord.conf
-COPY etc/cobbler/dhcp.template /etc/cobbler/dhcp.template
-COPY var/lib/cobbler/kickstarts/* /var/lib/cobbler/kickstarts/
-COPY etc/httpd/conf.d/cobbler_web.conf /etc/httpd/conf.d/cobbler_web.conf
-
-RUN sed -i \
- -e "/^default_password_crypted/ s|:.*$|: \"${cobbler_sys_pass}\"|" \
- -e "/^next_server:/ s/:.*$/: ${cobbler_ip_addr}/" \
- -e "/^server/ s/:.*$/: ${cobbler_ip_addr}/" \
- -e "/^http_port:/ s/:.*$/: ${cobbler_http_port}/" \
- -e "/^pxe_just_once:/ s/:.*$/: 1/" \
- -e "/^manage_dhcp:/ s/:.*$/: 1/" \
- /etc/cobbler/settings \
- && sed -i "s/service %s restart/supervisorctl restart %s/g" \
- /usr/lib/python2.7/site-packages/cobbler/modules/sync_post_restart_services.py \
- && sed -i "s/Listen 80/Listen ${cobbler_http_port}/g" \
- /etc/httpd/conf/httpd.conf \
- && sed -i "s/Listen 443 https/Listen ${cobbler_https_port} https/g" \
- /etc/httpd/conf.d/ssl.conf
-
-# Change Cobbler WEB password
-RUN echo -n "cobbler:Cobbler:${cobbler_web_pass}" \
- | md5sum \
- | cut -d' ' -f1 \
- | xargs printf "%s:%s:%s\n" cobbler Cobbler > "/etc/cobbler/users.digest"
-
-# Create Cobbler directories
-RUN mkdir -p /var/lib/cobbler/config/distros.d \
- && mkdir -p /var/lib/cobbler/config/files.d \
- && mkdir -p /var/lib/cobbler/config/images.d \
- && mkdir -p /var/lib/cobbler/config/mgmtclasses.d \
- && mkdir -p /var/lib/cobbler/config/packages.d \
- && mkdir -p /var/lib/cobbler/config/profiles.d \
- && mkdir -p /var/lib/cobbler/config/repos.d \
- && mkdir -p /var/lib/cobbler/config/systems.d \
- && mkdir -p /var/www/cobbler/links/ \
- && touch /usr/share/cobbler/web/cobbler.wsgi
-
-# Expose TFTP WWW COBBLER
-EXPOSE 69
-EXPOSE $cobbler_http_port
-EXPOSE $cobbler_https_port
-EXPOSE 25151
-
-ENTRYPOINT /usr/bin/supervisord -c /etc/supervisord.conf
diff --git a/resources/tools/testbed-setup/ansible/roles/cobbler/files/etc/cobbler/dhcp.template b/resources/tools/testbed-setup/ansible/roles/cobbler/files/etc/cobbler/dhcp.template
deleted file mode 100644
index 965562ae0a..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/cobbler/files/etc/cobbler/dhcp.template
+++ /dev/null
@@ -1,86 +0,0 @@
-# ******************************************************************
-# Cobbler managed dhcpd.conf file
-#
-# generated from cobbler dhcp.conf template ($date)
-# Do NOT make changes to /etc/dhcpd.conf. Instead, make your changes
-# in /etc/cobbler/dhcp.template, as /etc/dhcpd.conf will be
-# overwritten.
-#
-# ******************************************************************
-
-ddns-update-style interim;
-
-allow booting;
-allow bootp;
-
-ignore client-updates;
-set vendorclass = option vendor-class-identifier;
-
-option pxe-system-type code 93 = unsigned integer 16;
-
-subnet 10.30.51.0 netmask 255.255.255.0 {
- option routers 10.30.51.1;
- option domain-name "linuxfoundation.org";
- option domain-name-servers 1.1.1.1, 8.8.8.8;
- option subnet-mask 255.255.255.0;
- range dynamic-bootp 10.30.51.2 10.30.51.254;
- default-lease-time 600;
- max-lease-time 7200;
- next-server $next_server;
- class "pxeclients" {
- match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
- if option pxe-system-type = 00:02 {
- filename "ia64/elilo.efi";
- } else if option pxe-system-type = 00:06 {
- filename "grub/grub-x86.efi";
- } else if option pxe-system-type = 00:07 {
- filename "grub/grub-x86_64.efi";
- } else {
- filename "pxelinux.0";
- }
- }
-}
-
-#for dhcp_tag in $dhcp_tags.keys():
- ## group could be subnet if your dhcp tags line up with your subnets
- ## or really any valid dhcpd.conf construct ... if you only use the
- ## default dhcp tag in cobbler, the group block can be deleted for a
- ## flat configuration
-# group for Cobbler DHCP tag: $dhcp_tag
-group {
- #for mac in $dhcp_tags[$dhcp_tag].keys():
- #set iface = $dhcp_tags[$dhcp_tag][$mac]
- host $iface.name {
- hardware ethernet $mac;
- #if $iface.ip_address:
- fixed-address $iface.ip_address;
- #end if
- #if $iface.hostname:
- option host-name "$iface.hostname";
- #end if
- #if $iface.netmask:
- option subnet-mask $iface.netmask;
- #end if
- #if $iface.gateway:
- option routers $iface.gateway;
- #end if
- #if $iface.enable_gpxe:
- if exists user-class and option user-class = "gPXE" {
- filename "http://$cobbler_server/cblr/svc/op/gpxe/system/$iface.owner";
- } else if exists user-class and option user-class = "iPXE" {
- filename "http://$cobbler_server/cblr/svc/op/gpxe/system/$iface.owner";
- } else {
- filename "undionly.kpxe";
- }
- #else
- filename "$iface.filename";
- #end if
- ## Cobbler defaults to $next_server, but some users
- ## may like to use $iface.system.server for proxied setups
- next-server $next_server;
- ## next-server $iface.next_server;
- }
- #end for
-}
-#end for
-
diff --git a/resources/tools/testbed-setup/ansible/roles/cobbler/files/etc/httpd/conf.d/cobbler_web.conf b/resources/tools/testbed-setup/ansible/roles/cobbler/files/etc/httpd/conf.d/cobbler_web.conf
deleted file mode 100644
index 8b0f9863c1..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/cobbler/files/etc/httpd/conf.d/cobbler_web.conf
+++ /dev/null
@@ -1,33 +0,0 @@
-# This configuration file enables the cobbler web
-# interface (django version)
-
-<Directory "/usr/share/cobbler/web/">
- SetEnv VIRTUALENV
- Options Indexes MultiViews
- AllowOverride None
- Order allow,deny
- Allow from all
-</Directory>
-
-<Directory "/var/www/cobbler_webui_content/">
- Options +Indexes +FollowSymLinks
- AllowOverride None
- Order allow,deny
- Allow from all
-</Directory>
-
-# Use separate process group for wsgi
-WSGISocketPrefix /var/run/wsgi
-WSGIScriptAlias /cobbler_web /usr/share/cobbler/web/cobbler.wsgi
-WSGIDaemonProcess cobbler_web display-name=%{GROUP}
-WSGIProcessGroup cobbler_web
-WSGIPassAuthorization On
-
-<IfVersion >= 2.4>
- <Location /cobbler_web>
- Require all granted
- </Location>
- <Location /cobbler_webui_content>
- Require all granted
- </Location>
-</IfVersion>
diff --git a/resources/tools/testbed-setup/ansible/roles/cobbler/files/supervisord/supervisord.conf b/resources/tools/testbed-setup/ansible/roles/cobbler/files/supervisord/supervisord.conf
deleted file mode 100644
index 4ac5af8f99..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/cobbler/files/supervisord/supervisord.conf
+++ /dev/null
@@ -1,42 +0,0 @@
-[unix_http_server]
-file=/run/supervisor.sock
-
-[supervisord]
-pidfile=/var/run/supervisord.pid
-identifier=supervisor
-directory=/run
-logfile=/var/log/supervisord.log
-loglevel=debug
-nodaemon=true
-
-[rpcinterface:supervisor]
-supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
-
-[supervisorctl]
-serverurl=unix:///run/supervisor.sock
-
-[program:cobblerd]
-command=/usr/bin/cobblerd -F
-stdout_logfile=/var/log/supervisord.log
-stderr_logfile=/var/log/supervisord.log
-
-[program:httpd]
-command=/usr/sbin/httpd -DFOREGROUND
-stdout_logfile=/var/log/supervisord.log
-stderr_logfile=/var/log/supervisord.log
-
-[program:tftpd]
-command=/usr/sbin/in.tftpd --foreground --verbose --user root --permissive --blocksize 1380 --address 0.0.0.0:69 --secure /var/lib/tftpboot
-stdout_logfile=/var/log/supervisord.log
-stderr_logfile=/var/log/supervisord.log
-
-[program:rsyncd]
-command=/usr/bin/rsync --no-detach --daemon --config /etc/rsyncd.conf
-stopsignal=QUIT
-stdout_logfile=/var/log/supervisord.log
-stderr_logfile=/var/log/supervisord.log
-
-[program:dhcpd]
-command=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid
-stdout_logfile=/var/log/supervisord.log
-stderr_logfile=/var/log/supervisord.log
diff --git a/resources/tools/testbed-setup/ansible/roles/cobbler/files/var/lib/cobbler/kickstarts/ubuntu-18.04.2-server-x86_64.seed b/resources/tools/testbed-setup/ansible/roles/cobbler/files/var/lib/cobbler/kickstarts/ubuntu-18.04.2-server-x86_64.seed
deleted file mode 100644
index 3827562c06..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/cobbler/files/var/lib/cobbler/kickstarts/ubuntu-18.04.2-server-x86_64.seed
+++ /dev/null
@@ -1,137 +0,0 @@
-#### Contents of the preconfiguration file (for Ubuntu 18.04 Server LTS)
-
-### Localization
-# Locale sets language and country.
-d-i debian-installer/locale string en_US
-d-i pkgsel/install-language-support boolean false
-# Keyboard selection.
-# Disable automatic (interactive) keymap detection.
-d-i console-setup/ask_detect boolean false
-d-i console-setup/layoutcode string us
-
-### Network configuration
-# netcfg will choose an interface that has link if possible. This makes it
-# skip displaying a list if there is more than one interface.
-d-i netcfg/choose_interface select auto
-# If you have a slow dhcp server and the installer times out waiting for
-# it, this might be useful.
-d-i netcfg/dhcp_timeout string 60
-# If you prefer to configure the network manually, uncomment this line and
-# the static network configuration below.
-#d-i netcfg/disable_dhcp boolean true
-# If you want the preconfiguration file to work on systems both with and
-# without a dhcp server, uncomment these lines and the static network
-# configuration below.
-d-i netcfg/dhcp_failed note
-#d-i netcfg/dhcp_options select Configure network manually
-# Static network configuration.
-#d-i netcfg/get_nameservers string 172.30.0.2
-#d-i netcfg/get_ipaddress string 172.30.15.42
-#d-i netcfg/get_netmask string 255.255.0.0
-#d-i netcfg/get_gateway string 172.30.0.1
-#d-i netcfg/confirm_static boolean true
-# Any hostname and domain names assigned from dhcp take precedence over
-# values set here. However, setting the values still prevents the questions
-# from being shown, even if values come from dhcp.
-d-i netcfg/get_hostname string unassigned-hostname
-d-i netcfg/get_domain string unassigned-domain
-# Disable WEP key dialog.
-d-i netcfg/wireless_wep string
-# Alternatively: by default, the installer uses CC.archive.ubuntu.com where
-# CC is the ISO-3166-2 code for the selected country. You can preseed this
-# so that it does so without asking.
-d-i mirror/http/mirror select us.archive.ubuntu.com
-
-### Mirror settings
-d-i live-installer/net-image string http://$http_server/cobbler/links/$distro_name/install/filesystem.squashfs
-
-### Clock and time zone setup
-# Controls whether or not the hardware clock is set to UTC.
-d-i clock-setup/utc boolean true
-# You may set this to any valid setting for $TZ; see the contents of
-# /usr/share/zoneinfo/ for valid values.
-d-i time/zone string America/Los_Angeles
-# Controls whether to use NTP to set the clock during the install
-d-i clock-setup/ntp boolean false
-
-### Partitioning
-## If the system has free space you can choose to only partition that space.
-# Alternatives: custom, some_device, some_device_crypto, some_device_lvm.
-d-i partman-auto/init_automatically_partition select some_device
-# Alternatively, you can specify a disk to partition. The device name must
-# be given in traditional non-devfs format.
-d-i partman-auto/disk string /dev/sda
-# In addition, you'll need to specify the method to use.
-# The presently available methods are: "regular", "lvm" and "crypto"
-d-i partman-auto/method string regular
-# If one of the disks that are going to be automatically partitioned
-# contains an old LVM configuration, the user will normally receive a
-# warning. This can be preseeded away...
-d-i partman-lvm/device_remove_lvm boolean true
-# The same applies to pre-existing software RAID array:
-d-i partman-md/device_remove_md boolean true
-# And the same goes for the confirmation to write the lvm partitions.
-d-i partman-lvm/confirm boolean true
-# You can choose one of the three predefined partitioning recipes:
-# - atomic: all files in one partition
-# - home: separate /home partition
-# - multi: separate /home, /usr, /var, and /tmp partitions
-d-i partman-auto/choose_recipe select atomic
-# If you just want to change the default filesystem from ext3 to something
-# else, you can do that without providing a full recipe.
-d-i partman/default_filesystem string ext4
-# This makes partman automatically partition without confirmation, provided
-# that you told it what to do using one of the methods above.
-d-i partman/confirm_write_new_label boolean true
-d-i partman/choose_partition select finish
-d-i partman/confirm boolean true
-d-i partman/confirm_nooverwrite boolean true
-
-### Account setup
-# Skip creation of a root account (normal user account will be able to
-# use sudo). The default is false; preseed this to true if you want to set
-# a root password.
-d-i passwd/root-login boolean false
-# Root password, either in clear text
-#d-i passwd/root-password password pass
-#d-i passwd/root-password-again password pass
-# or encrypted using an MD5 hash.
-#d-i passwd/root-password-crypted password f4f1d7b6738330f521de21da3f563bce
-# To create a normal user account.
-d-i passwd/user-fullname string testuser
-d-i passwd/username string testuser
-# Normal user's password, either in clear text
-d-i passwd/user-password password Csit1234
-d-i passwd/user-password-again password Csit1234
-# or encrypted using an MD5 hash.
-#d-i passwd/user-password-crypted password f4f1d7b6738330f521de21da3f563bce
-# The installer will warn about weak passwords. If you are sure you know
-# what you're doing and want to override it, uncomment this.
-d-i user-setup/allow-password-weak boolean true
-# Set to true if you want to encrypt the first user's home directory.
-d-i user-setup/encrypt-home boolean false
-
-### Package selection
-tasksel tasksel/first multiselect ubuntu-server
-# Individual additional packages to install
-d-i pkgsel/include string openssh-server python2.7 python3.6
-# Whether to upgrade packages after debootstrap.
-# Allowed values: none, safe-upgrade, full-upgrade
-#d-i pkgsel/upgrade select none
-# Policy for applying updates. May be "none" (no automatic updates),
-# "unattended-upgrades" (install security updates automatically), or
-# "landscape" (manage system with Landscape).
-d-i pkgsel/update-policy select none
-
-### Boot loader installation
-d-i grub-installer/bootdev string default
-# This is fairly safe to set, it makes grub install automatically to the MBR
-# if no other operating system is detected on the machine.
-d-i grub-installer/only_debian boolean false
-# This one makes grub-installer install to the MBR if it also finds some other
-# OS, which is less safe as it might not be able to boot that other OS.
-d-i grub-installer/with_other_os boolean false
-
-### Finishing up the installation
-# Avoid that last message about the install being complete.
-d-i finish-install/reboot_in_progress note
diff --git a/resources/tools/testbed-setup/ansible/roles/cobbler/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/cobbler/tasks/main.yaml
deleted file mode 100644
index c03a69e112..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/cobbler/tasks/main.yaml
+++ /dev/null
@@ -1,51 +0,0 @@
----
-# file: roles/cobbler/tasks/main.yaml
-
-- name: Cobbler - Sync the cobbler docker directory
- synchronize:
- src: "files"
- dest: "/home/{{ ansible_user }}/cobbler_docker"
- register: __cobbler_image_built
- tags:
- - cobbler-build-image
-
-- name: Cobbler - Build the cobbler docker image
- docker_image:
- path: "/home/{{ ansible_user }}/cobbler_docker/files"
- name: "csit/cobbler"
- buildargs:
- cobbler_pass: "{{ cobbler_pass }}"
- cobbler_web_pass: "{{ cobbler_password }}"
- cobbler_ip_addr: "{{ inventory_hostname }}"
- when: __cobbler_image_built
- tags:
- - cobbler-build-image
-
-- name: Cobbler - Run Cobbler image
- docker_container:
- name: "cobbler"
- image: "csit/cobbler"
- network_mode: "host"
- volumes:
- - "/mnt:/mnt:ro"
- register: __cobbler_image_running
- tags:
- - cobbler-run-image
-
-- name: Cobbler - Run cobbler setup get-loaders
- command: "docker exec -i cobbler cobbler get-loaders"
- when: __cobbler_image_running
- tags:
- - cobbler-run-image
-
-- name: Cobbler - Run cobbler setup sync
- command: "docker exec -i cobbler cobbler sync"
- when: __cobbler_image_running
- tags:
- - cobbler-run-image
-
-- name: Cobbler - Add Ubuntu 18.04.2 Server x86_64 to cobbler
- include_tasks: "ubuntu-18.04.2-server-x86_64.yaml"
- when: __cobbler_image_running
- tags:
- - cobbler-run-image
diff --git a/resources/tools/testbed-setup/ansible/roles/cobbler/tasks/ubuntu-18.04.2-server-x86_64.yaml b/resources/tools/testbed-setup/ansible/roles/cobbler/tasks/ubuntu-18.04.2-server-x86_64.yaml
deleted file mode 100644
index f6f1ac0f7a..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/cobbler/tasks/ubuntu-18.04.2-server-x86_64.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
----
-# file: roles/cobbler/tasks/ubuntu-18.04.2-server-x86_64.yaml
-
-- name: Download Ubuntu 18.04.2 Server x86_64 with check (sha256)
- get_url:
- url: 'http://cdimage.ubuntu.com/ubuntu/releases/18.04/release/ubuntu-18.04.2-server-amd64.iso'
- dest: '/mnt/ubuntu-18.04.2-server-amd64.iso'
- checksum: 'sha256:a2cb36dc010d98ad9253ea5ad5a07fd6b409e3412c48f1860536970b073c98f5'
- register: __iso_downloaded
- tags:
- - cobbler-import-image
-
-- name: Create directory for Ubuntu 18.04.2 Server x86_64 mount
- file:
- path: '/mnt/ubuntu-18.04.2-server-x86_64'
- state: 'directory'
- register: __mount_directory_created
- tags:
- - cobbler-import-image
-
-- name: Mount Ubuntu 18.04.2 Server x86_64 iso
- mount:
- src: '/mnt/ubuntu-18.04.2-server-amd64.iso'
- path: '/mnt/ubuntu-18.04.2-server-x86_64'
- fstype: 'iso9660'
- opts: 'ro,loop'
- state: mounted
- when: __iso_downloaded and __mount_directory_created
- tags:
- - cobbler-import-image
-
-- name: Run cobbler distro import for Ubuntu 18.04.2 Server x86_64
- command: |
- docker exec -i cobbler cobbler import
- --path=/mnt/ubuntu-18.04.2-server-x86_64
- --name=ubuntu-18.04.2-server-x86_64
- --kickstart=/var/lib/cobbler/kickstarts/ubuntu-18.04.2-server-x86_64.seed
- tags:
- - cobbler-import-image