ceph-ansible/tests/functional/setup.yml

89 lines
2.7 KiB
YAML
Raw Permalink Normal View History

---
- hosts: all
gather_facts: true
become: yes
tasks:
- name: check if it is Atomic host
stat: path=/run/ostree-booted
register: stat_ostree
check_mode: no
- name: set fact for using Atomic host
set_fact:
is_atomic: '{{ stat_ostree.stat.exists }}'
- name: get root mount information
set_fact:
rootmount: "{{ ansible_mounts|json_query('[?mount==`/`]|[0]') }}"
# mount -o remount doesn't work on RHEL 8 for now
- name: add mount options to /
mount:
path: '{{ rootmount.mount }}'
src: '{{ rootmount.device }}'
opts: 'noatime,nodiratime{% if ansible_os_family == "RedHat" and ansible_distribution_major_version | int < 8 %},nobarrier{% endif %}'
fstype: '{{ rootmount.fstype }}'
state: mounted
# we need to install this so the Socket testinfra module
# can use netcat for testing
- name: install net-tools
package:
name: net-tools
state: present
register: result
until: result is succeeded
when: not is_atomic | bool
- name: centos based systems - configure repos
block:
- name: disable fastest mirror detection
ini_file:
path: /etc/yum/pluginconf.d/fastestmirror.conf
section: main
option: enabled
value: 0
- name: install epel
package:
name: epel-release
state: present
register: result
until: result is succeeded
- name: enable local epel repository
ini_file:
path: /etc/yum.repos.d/epel.repo
section: epel
option: baseurl
value: http://apt-mirror.front.sepia.ceph.com/epel7/
- name: disable remote epel repository
ini_file:
path: /etc/yum.repos.d/epel.repo
section: epel
option: metalink
state: absent
when:
- ansible_distribution == 'CentOS'
- ansible_distribution_major_version | int == 7
- not is_atomic | bool
tests: resize root partition when atomic host For a few moment we can see failures in the CI for containerized scenarios because VMs are running out of space at some point. The default in the images used is to have only 3Gb for root partition which doesn't sound like a lot. Typical error seen: ``` STDERR: failed to register layer: Error processing tar file(exit status 1): open /usr/share/zoneinfo/Atlantic/Canary: no space left on device ``` Indeed, on the machine we can see: ``` Every 2.0s: df -h Tue May 29 17:21:13 2018 Filesystem Size Used Avail Use% Mounted on /dev/mapper/atomicos-root 3.0G 3.0G 14M 100% / ``` The idea here is to expand this partition with all the available space remaining by issuing an `lvresize` followed by an `xfs_growfs`. ``` -bash-4.2# lvresize -l +100%FREE /dev/atomicos/root Size of logical volume atomicos/root changed from <2.93 GiB (750 extents) to 9.70 GiB (2484 extents). Logical volume atomicos/root successfully resized. ``` ``` -bash-4.2# xfs_growfs / meta-data=/dev/mapper/atomicos-root isize=512 agcount=4, agsize=192000 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=768000, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 768000 to 2543616 ``` ``` -bash-4.2# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/atomicos-root 9.7G 1.4G 8.4G 14% / ``` Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2018-05-30 15:17:09 +08:00
- name: resize logical volume for root partition to fill remaining free space
lvol:
lv: root
vg: atomicos
size: +100%FREE
resizefs: yes
when: is_atomic | bool
# https://tracker.ceph.com/issues/46759
- name: install pyyaml for ceph-volume
package:
name: "{{ 'python3-pyyaml' if ansible_distribution_major_version | int == 8 else 'python36-PyYAML' }}"
register: result
until: result is succeeded
when:
- not is_atomic | bool
- ansible_distribution == 'CentOS'
- inventory_hostname in groups.get('osds', [])
- not containerized_deployment | default(false) | bool