Add nfs deployment scenario
In order to reproduce NFS functional test for glance we introduce new `nfs` integrated scenario that aim to deploy NFS server and replace fucntional test usecase. Needed-By: https://review.opendev.org/c/openstack/openstack-ansible-os_glance/+/821097 Change-Id: I17252c764c6fcaa29aa9d707322fa0327c9e24ef
This commit is contained in:
parent
efd1004009
commit
97b8378269
@ -86,6 +86,11 @@ bootstrap_host_loopback_zfs: yes
|
||||
# Size of the zfs loopback disk in gigabytes (GB).
|
||||
bootstrap_host_loopback_zfs_size: 1024
|
||||
#
|
||||
# Boolean option to deploy the loopback disk for nfs
|
||||
bootstrap_host_nfs: "{{ 'nfs' in bootstrap_host_scenarios_expanded }}"
|
||||
# Size of the nfs loopback disk in gigabytes (GB).
|
||||
bootstrap_host_loopback_nfs_size: 1024
|
||||
#
|
||||
# Boolean option to deploy the OSD loopback disks and cluster UUID for Ceph
|
||||
bootstrap_host_ceph: "{{ 'ceph' in bootstrap_host_scenarios_expanded }}"
|
||||
# Size of the Ceph OSD loopbacks
|
||||
|
@ -137,6 +137,13 @@
|
||||
tags:
|
||||
- prepare-ceph
|
||||
|
||||
# Prepare the NFS server and loopback disks
|
||||
- include: prepare_nfs.yml
|
||||
when:
|
||||
- bootstrap_host_nfs | bool
|
||||
tags:
|
||||
- prepare-nfs
|
||||
|
||||
# Ensure hostname/ip is consistent with inventory
|
||||
- include: prepare_hostname.yml
|
||||
tags:
|
||||
|
@ -167,6 +167,9 @@
|
||||
- src: user_variables_murano.yml.j2
|
||||
dest: user_variables_murano.yml
|
||||
condition: "{{ 'murano' in bootstrap_host_scenarios_expanded }}"
|
||||
- src: user_variables_nfs.yml.j2
|
||||
dest: user_variables_nfs.yml
|
||||
condition: "{{ 'nfs' in bootstrap_host_scenarios_expanded }}"
|
||||
- src: user_variables_calico.yml.j2
|
||||
dest: user_variables_calico.yml
|
||||
condition: "{{ 'calico' in bootstrap_host_scenarios_expanded }}"
|
||||
|
99
tests/roles/bootstrap-host/tasks/prepare_nfs.yml
Normal file
99
tests/roles/bootstrap-host/tasks/prepare_nfs.yml
Normal file
@ -0,0 +1,99 @@
|
||||
---
|
||||
# Copyright 2021, City Network International AB
|
||||
#
|
||||
# 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.
|
||||
|
||||
- name: Create sparse NFS volume
|
||||
command: "truncate -s {{ bootstrap_host_loopback_nfs_size }}G /openstack/nfs.img"
|
||||
args:
|
||||
creates: /openstack/nfs.img
|
||||
tags:
|
||||
- nfs-file-create
|
||||
|
||||
- name: Format the NFS file
|
||||
filesystem:
|
||||
fstype: xfs
|
||||
dev: /openstack/nfs.img
|
||||
opts: "{{ bootstrap_host_format_options['xfs'] | default(omit) }}"
|
||||
tags:
|
||||
- nfs-format-file
|
||||
|
||||
- name: Run the systemd mount role
|
||||
include_role:
|
||||
name: systemd_mount
|
||||
vars:
|
||||
systemd_mounts:
|
||||
- what: "/openstack/nfs.img"
|
||||
where: "/srv/nfs"
|
||||
options: "loop,{{ bootstrap_host_data_mount_options['xfs'] }}"
|
||||
type: "xfs"
|
||||
state: 'started'
|
||||
enabled: true
|
||||
tags:
|
||||
- nfs-config
|
||||
|
||||
- name: Install NFS packages
|
||||
package:
|
||||
name: "{{ nfs_package }}"
|
||||
state: present
|
||||
|
||||
- name: create the system group for nfs
|
||||
group:
|
||||
name: "nfs-user"
|
||||
gid: "10000"
|
||||
state: "present"
|
||||
system: "yes"
|
||||
|
||||
- name: Create the system user for nfs
|
||||
user:
|
||||
name: "nfs-user"
|
||||
uid: "10000"
|
||||
group: "nfs-user"
|
||||
comment: "nfs-user"
|
||||
shell: "/bin/false"
|
||||
system: "yes"
|
||||
createhome: "yes"
|
||||
home: "/srv/nfs"
|
||||
|
||||
- name: Create base directories
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
state: "directory"
|
||||
owner: "nfs-user"
|
||||
group: "nfs-user"
|
||||
with_items:
|
||||
- "/srv/nfs/glance"
|
||||
|
||||
- name: Create exports file
|
||||
lineinfile:
|
||||
path: /etc/exports
|
||||
line: '{{ item }} {{ storage_range }}.0/{{ netmask }}(rw,sync,no_subtree_check,insecure,all_squash,anonuid=10000,anongid=10000)'
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
create: yes
|
||||
with_items:
|
||||
- "/srv/nfs/glance"
|
||||
register: nfs_exportfs
|
||||
|
||||
- name: Restart nfs-server
|
||||
systemd:
|
||||
daemon_reload: yes
|
||||
name: "nfs-server"
|
||||
enabled: "yes"
|
||||
state: "restarted"
|
||||
when:
|
||||
- nfs_exportfs is changed
|
||||
|
||||
- name: Export NFS
|
||||
command: exportfs -rav
|
@ -0,0 +1,9 @@
|
||||
---
|
||||
|
||||
glance_default_store: file
|
||||
glance_nfs_client:
|
||||
- server: "172.29.244.100"
|
||||
remote_path: "/srv/nfs/glance"
|
||||
local_path: "/var/lib/glance/images"
|
||||
type: "nfs"
|
||||
options: "_netdev,auto"
|
@ -44,3 +44,5 @@ packages_remove:
|
||||
|
||||
rc_local: /etc/rc.local
|
||||
rc_local_insert_before: "^exit 0$"
|
||||
|
||||
nfs_package: nfs-kernel-server
|
||||
|
@ -33,3 +33,5 @@ packages_remove: []
|
||||
|
||||
rc_local: /etc/rc.d/rc.local
|
||||
rc_local_insert_before: "^touch /var/lock/subsys/local$"
|
||||
|
||||
nfs_package: nfs-utils
|
||||
|
@ -33,3 +33,5 @@ packages_remove: []
|
||||
|
||||
rc_local: /etc/rc.d/rc.local
|
||||
rc_local_insert_before: "^touch /var/lock/subsys/local$"
|
||||
|
||||
nfs_package: nfs-utils
|
||||
|
@ -271,6 +271,11 @@
|
||||
parent: openstack-ansible-deploy-aio
|
||||
nodeset: ubuntu-focal
|
||||
|
||||
- job:
|
||||
name: openstack-ansible-deploy-aio_nfs-ubuntu-focal
|
||||
parent: openstack-ansible-deploy-aio
|
||||
nodeset: ubuntu-focal
|
||||
|
||||
- job:
|
||||
name: openstack-ansible-deploy-aio_proxy-ubuntu-focal
|
||||
parent: openstack-ansible-deploy-aio
|
||||
@ -429,6 +434,11 @@
|
||||
parent: openstack-ansible-deploy-aio
|
||||
nodeset: centos-8-stream
|
||||
|
||||
- job:
|
||||
name: openstack-ansible-deploy-aio_nfs-centos-8-stream
|
||||
parent: openstack-ansible-deploy-aio
|
||||
nodeset: centos-8-stream
|
||||
|
||||
- job:
|
||||
name: openstack-ansible-deploy-aio_distro_ceph-centos-8-stream
|
||||
parent: openstack-ansible-deploy-aio-distro
|
||||
|
@ -211,6 +211,15 @@
|
||||
jobs:
|
||||
- openstack-ansible-deploy-aio_distro_metal-debian-bullseye
|
||||
|
||||
- project-template:
|
||||
name: openstack-ansible-deploy-nfs-jobs
|
||||
check:
|
||||
jobs:
|
||||
- openstack-ansible-deploy-aio_nfs-ubuntu-focal
|
||||
gate:
|
||||
jobs:
|
||||
- openstack-ansible-deploy-aio_nfs-ubuntu-focal
|
||||
|
||||
- project-template:
|
||||
name: openstack-ansible-deploy-ceph-jobs
|
||||
check:
|
||||
|
Loading…
Reference in New Issue
Block a user