Fedora 25-27 support

Update bifrost to handle fedora as minor changes between
releases have been slightly breaking, and have gone largely
un-noticed since the bulk of bifrost users seem to use
centos or ubuntu.

Added a fedora 26 job to help enforce support moving forward.

Change-Id: I9a654b91edfa52321adccfa5df0c260eb0c9e487
Closes-Bug: #1695969
Closes-Bug: #1695968
This commit is contained in:
Julia Kreger 2017-06-07 12:05:29 +00:00
parent 8b4c956bf0
commit 9b15ca277f
13 changed files with 204 additions and 2 deletions

View File

@ -0,0 +1,16 @@
---
sgabios_dir: /usr/share/sgabios/
libvirt_service_name: libvirtd
required_packages:
- qemu-img
- qemu-kvm
- qemu-system-x86
- sgabios-bin
- libvirt
- libvirt-client
- libvirt-daemon
- libvirt-python
- python-lxml
- pkgconfig
- libvirt-devel
- libselinux-python

View File

@ -57,6 +57,15 @@
state: stopped
ignore_errors: true
# NOTE(TheJulia): Seems if you test in a VM, this might
# be helpful if your installed your host originally
# with the default 192.168.122/0/24 network
- name: destroy libvirt network
virt_net:
name: "{{ test_vm_network }}"
state: absent
uri: "{{ test_vm_libvirt_uri }}"
- name: ensure libvirt network is present
virt_net:
name: "{{ test_vm_network }}"

View File

@ -0,0 +1,44 @@
---
init_template: systemd_template.j2
init_dest_dir: /usr/lib/systemd/system/
init_ext: .service
syslinux_tftp_dir: /var/lib/tftpboot
ipxe_dir: /usr/share/ipxe/
ipxe_full_binary: ipxe.lkrn
ironic_rootwrap_dir: /usr/bin/
nginx_user: nginx
mysql_service_name: mariadb
tftp_service_name: tftp
required_packages:
- mariadb-server
- dnsmasq
- rabbitmq-server
- python-devel
- MySQL-python
- libselinux-python
- python-iniparse
- libffi-devel
- libxslt-devel
- openssl-devel
- libxml2-devel
- ipxe-bootimgs
- tftp-server
- syslinux
- syslinux-tftpboot
- xinetd
- parted
- ipmitool
- psmisc
- nginx
- wget
- genisoimage
- kpartx
- qemu-kvm
- qemu-img
- openwsman-python
- libselinux-python
- policycoreutils-python
- debootstrap
- gcc
- socat
iscsi_client_package: "iscsi-initiator-utils"

View File

@ -0,0 +1,45 @@
---
init_template: systemd_template.j2
init_dest_dir: /usr/lib/systemd/system/
init_ext: .service
syslinux_tftp_dir: /var/lib/tftpboot
ipxe_dir: /usr/share/ipxe/
ipxe_full_binary: ipxe.lkrn
ironic_rootwrap_dir: /usr/bin/
nginx_user: nginx
mysql_service_name: mariadb
tftp_service_name: tftp
required_packages:
- mariadb-server
- dnsmasq
- rabbitmq-server
- python-devel
- MySQL-python
- libselinux-python
- python-iniparse
- libffi-devel
- libxslt-devel
- openssl-devel
- libxml2-devel
- ipxe-bootimgs
- tftp-server
- syslinux
- syslinux-tftpboot
- xinetd
- parted
- ipmitool
- psmisc
- nginx
- wget
- genisoimage
- kpartx
- qemu-kvm
- qemu-img
- openwsman-python
- libselinux-python
- policycoreutils-python
- policycoreutils-python-utils
- debootstrap
- gcc
- socat
iscsi_client_package: "iscsi-initiator-utils"

View File

@ -0,0 +1,45 @@
---
init_template: systemd_template.j2
init_dest_dir: /usr/lib/systemd/system/
init_ext: .service
syslinux_tftp_dir: /var/lib/tftpboot
ipxe_dir: /usr/share/ipxe/
ipxe_full_binary: ipxe.lkrn
ironic_rootwrap_dir: /usr/bin/
nginx_user: nginx
mysql_service_name: mariadb
tftp_service_name: tftp
required_packages:
- mariadb-server
- dnsmasq
- rabbitmq-server
- python-devel
- MySQL-python
- libselinux-python
- python-iniparse
- libffi-devel
- libxslt-devel
- openssl-devel
- libxml2-devel
- ipxe-bootimgs
- tftp-server
- syslinux
- syslinux-tftpboot
- xinetd
- parted
- ipmitool
- psmisc
- nginx
- wget
- genisoimage
- kpartx
- qemu-kvm
- qemu-img
- openwsman-python
- libselinux-python
- policycoreutils-python
- policycoreutils-python-utils
- debootstrap
- gcc
- socat
iscsi_client_package: "iscsi-initiator-utils"

View File

@ -201,6 +201,7 @@
group: "ironic"
with_items:
- "/var/lib/ironic"
- "/var/lib/ironic/master_images"
- "/var/lib/ironic/images"
- name: "Set permissions for /var/log/ironic for the ironic user"
@ -283,7 +284,10 @@
state: present
- name: "Add proper context on created data for http_boot"
command: semanage fcontext -a -t httpd_sys_content_t "{{ http_boot_folder }}(/.*)?"
sefcontext:
target: "{{ http_boot_folder }}(/.*)?"
setype: httpd_sys_content_t
state: present
- name: Copy ironic policy file to temporary directory
copy:

View File

@ -105,7 +105,8 @@
- skip_install is not defined
- enable_venv | bool == false
- (ansible_distribution == 'CentOS' and ansible_distribution_major_version|version_compare('7', '<=')) or
(ansible_distribution == 'Ubuntu' and ansible_distribution_version|version_compare('14.10', '=='))
(ansible_distribution == 'Ubuntu' and ansible_distribution_version|version_compare('14.10', '==')) or
(ansible_distribution == 'Fedora' and ansible_distribution_version|version_compare('25', '>='))
- name: "Install Ironic using pip"
include: pip_install.yml

View File

@ -38,6 +38,7 @@ tftp_root = /tftpboot
pxe_bootfile_name = undionly.kpxe
ipxe_enabled = true
ipxe_boot_script = /etc/ironic/boot.ipxe
tftp_master_path = /var/lib/ironic/master_images
[deploy]
http_url = http://{{ hostvars[inventory_hostname]['ansible_' + ans_network_interface]['ipv4']['address'] }}:{{ file_url_port }}/

View File

@ -0,0 +1,23 @@
---
features:
- |
Adds support for Fedora 25, 26, and 27.
upgrades:
- The location for the tftp master_images cache folder has
changed from ``/tftpboot/master_images`` to
``/var/lib/ironic/master_images``. This was done due to
security enhancements in Fedora that break the ironic-conductor
process as-architected.
fixes:
- |
Addresses issues with setuptools on various distributions
such as Centos 7.3 and Fedora 25 where the shipped version
is too old to build the python packages.
- |
Changes the application of SELinux security policy from using
the command line tools to leveraging the Ansible module which
addresses issues with newer version of Ansible on Fedora.
deprecates:
- |
Support for Fedora versions prior to Fedora Core 25, will be removed
during the Rocky release cycle.

View File

@ -5,3 +5,4 @@ pbr!=2.1.0,>=2.0.0 # Apache-2.0
oslo.config>=5.1.0 # Apache-2.0
oslo.log>=3.30.0 # Apache-2.0
paramiko>=2.0.0 # LGPLv2.1+
setuptools>=16.0,!=24.0.0,!=34.0.0,!=34.0.1,!=34.0.2,!=34.0.3,!=34.1.0,!=34.1.1,!=34.2.0,!=34.3.0,!=34.3.1,!=34.3.2,!=36.2.0 # PSF/ZPL

View File

@ -86,6 +86,9 @@ case ${ID,,} in
)
EXTRA_PKG_DEPS=()
sudo yum updateinfo
if $(grep -q Fedora /etc/redhat-release); then
EXTRA_PKG_DEPS="python-dnf redhat-rpm-config"
fi
;;
*) echo "ERROR: Supported package manager not found. Supported: apt, dnf, yum, zypper"; exit 1;;

View File

@ -94,3 +94,11 @@
post-run: playbooks/legacy/bifrost-integration-tinyipa-opensuse-423/post.yaml
timeout: 3600
nodeset: legacy-opensuse-423
- job:
name: bifrost-integration-tinyipa-fedora26
parent: bifrost-base
run: playbooks/legacy/bifrost-integration-tinyipa/run.yaml
post-run: playbooks/legacy/bifrost-integration-tinyipa/post.yaml
timeout: 3600
nodeset: legacy-fedora-26

View File

@ -19,6 +19,8 @@
voting: false
- bifrost-integration-tinyipa-centos-7:
voting: false
- bifrost-integration-tinyipa-fedora26:
voting: false
gate:
jobs:
- bifrost-integration-tinyipa