3260f59035
The machines.raw file is only created if the 'machinectl set-limit' command returns non-zero exit code. However, this file is expected to be present later on so we need to make sure that we create without taking the 'machinectl' exit code into consideration. Fixes the following problem: fatal: [localhost]: FAILED! => {"changed": false, "msg": "Device /var/lib/machines.raw not found."} Depends-On: https://review.openstack.org/#/c/574382/ Change-Id: I8bfd8f2c698241d7b62d01f1674aff8e5c3d2eeb
93 lines
3.1 KiB
YAML
93 lines
3.1 KiB
YAML
---
|
|
# Copyright 2017, Rackspace US, Inc.
|
|
#
|
|
# 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: Check machinectl mount point
|
|
command: mountpoint /var/lib/machines
|
|
failed_when: false
|
|
changed_when: false
|
|
register: machinectl_mount
|
|
|
|
# NOTE(odyssey4me):
|
|
# The size is forced to be set in Gigabytes to maintain compatibility
|
|
# with the initial implementation done in Pike-Rocky. Do not change
|
|
# this without implementing some way of converting any pre-existing
|
|
# value properly during a major upgrade.
|
|
- name: Set volume size
|
|
shell: |
|
|
machinectl set-limit {{ lxc_host_machine_volume_size | regex_replace("\D*$", "") }}G
|
|
truncate -s '>{{ lxc_host_machine_volume_size | regex_replace("\D*$", "") }}G' /var/lib/machines.raw
|
|
changed_when: false
|
|
register: machines_create
|
|
args:
|
|
executable: /bin/bash
|
|
tags:
|
|
- skip_ansible_lint
|
|
|
|
- name: Systemd machinectl mount
|
|
block:
|
|
- name: Format the machines sparse file
|
|
filesystem:
|
|
fstype: btrfs
|
|
dev: /var/lib/machines.raw
|
|
|
|
- name: Create machines mount point
|
|
file:
|
|
path: "/var/lib/machines"
|
|
state: "directory"
|
|
|
|
- name: Move machines mount into place
|
|
template:
|
|
src: var-lib-machines.mount
|
|
dest: /etc/systemd/system/var-lib-machines.mount
|
|
register: mount_unit
|
|
notify:
|
|
- Reload systemd units
|
|
- Start machines mount
|
|
when:
|
|
- machinectl_mount.rc != 0
|
|
|
|
- meta: flush_handlers
|
|
|
|
- name: Update quota system and group limits
|
|
block:
|
|
- name: Disable|Enable the machinectl quota system
|
|
command: "btrfs quota {{ lxc_host_machine_quota_disabled | bool | ternary('disable', 'enable') }} /var/lib/machines"
|
|
changed_when: false
|
|
|
|
- name: Set the qgroup size|compression limits on machines
|
|
command: "btrfs qgroup limit {{ item }} /var/lib/machines"
|
|
changed_when: false
|
|
with_items:
|
|
- "-e {{ lxc_host_machine_qgroup_space_limit }}"
|
|
- "-c {{ lxc_host_machine_qgroup_compression_limit }}"
|
|
when:
|
|
- not lxc_host_machine_quota_disabled | bool
|
|
rescue:
|
|
- name: Notice regarding quota system
|
|
debug:
|
|
msg: >-
|
|
The machinectl quota system could not be setup. Check the system for
|
|
quota system availability otherwise disable it by setting
|
|
`lxc_host_machine_quota_disabled` to true.
|
|
|
|
# NOTE(cloudnull): Because the machines mount may be a manually created sparse
|
|
# file we run an online resize to ensure the machines mount is
|
|
# the size we expect.
|
|
- name: Ensure the machines fs is sized correctly
|
|
command: "btrfs filesystem resize max /var/lib/machines"
|
|
failed_when: false
|
|
when:
|
|
- machines_create is changed
|