118 lines
3.6 KiB
YAML
118 lines
3.6 KiB
YAML
---
|
|
# Copyright 2014, 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.
|
|
|
|
# Due to https://github.com/ansible/ansible-modules-extras/issues/2691
|
|
# this uses the LXC CLI tools to ensure that we get logging.
|
|
# TODO(odyssey4me): revisit this once the bug is fixed and released
|
|
- name: Stop Container
|
|
command: >
|
|
lxc-stop --name {{ inventory_hostname }}
|
|
--logfile {{ lxc_container_log_path }}/lxc-{{ inventory_hostname }}.log
|
|
--logpriority {{ (debug | bool) | ternary('DEBUG', 'INFO') }}
|
|
notify:
|
|
- Start Container
|
|
delegate_to: "{{ physical_host }}"
|
|
register: container_stop
|
|
changed_when: true
|
|
failed_when: not container_stop.rc in [0, 2]
|
|
until: container_stop.rc in [0, 2]
|
|
retries: 3
|
|
delay: 2
|
|
when:
|
|
- lxc_container_allow_restarts | bool
|
|
listen: Lxc container restart
|
|
|
|
# Due to https://github.com/ansible/ansible-modules-extras/issues/2691
|
|
# this uses the LXC CLI tools to ensure that we get logging.
|
|
# TODO(odyssey4me): revisit this once the bug is fixed and released
|
|
- name: Start Container
|
|
command: >
|
|
lxc-start --daemon --name {{ inventory_hostname }}
|
|
--logfile {{ lxc_container_log_path }}/lxc-{{ inventory_hostname }}.log
|
|
--logpriority {{ (debug | bool) | ternary('DEBUG', 'INFO') }}
|
|
delegate_to: "{{ physical_host }}"
|
|
register: container_start
|
|
until: container_start is success
|
|
retries: 3
|
|
listen: Lxc container restart
|
|
|
|
- name: Flush addresses
|
|
command: "ip addr flush {{ item.value.interface }}"
|
|
with_dict: "{{ lxc_container_networks_combined }}"
|
|
failed_when: false
|
|
when:
|
|
- item.value.interface is defined
|
|
listen: Restart networkd
|
|
|
|
- name: Restart systemd-networkd
|
|
systemd:
|
|
name: systemd-networkd
|
|
state: restarted
|
|
enabled: true
|
|
daemon_reload: true
|
|
listen: Restart networkd
|
|
|
|
- name: Enable resolved
|
|
systemd:
|
|
name: systemd-resolved
|
|
state: started
|
|
enabled: true
|
|
daemon_reload: true
|
|
when:
|
|
- lxc_container_enable_resolved | bool
|
|
|
|
- name: Enable dbus
|
|
systemd:
|
|
name: dbus
|
|
state: started
|
|
enabled: true
|
|
daemon_reload: true
|
|
|
|
- name: Reload systemd daemon
|
|
systemd:
|
|
daemon_reload: true
|
|
|
|
- name: Start hostnamed
|
|
systemd:
|
|
name: systemd-hostnamed
|
|
state: started
|
|
enabled: true
|
|
daemon_reload: true
|
|
listen: Enable hostnamed
|
|
|
|
- name: Set hostnamectl name
|
|
command: "/usr/bin/hostnamectl --static --pretty --transient set-hostname {{ inventory_hostname | replace('_', '-') | quote }}"
|
|
changed_when: false
|
|
listen: Enable hostnamed
|
|
|
|
# NOTE(hwoarang) openSUSE randomly fails to start the service
|
|
# with an error like the following one
|
|
# sysctl-container.service: Failed at step CGROUP spawning /sbin/sysctl: No such device
|
|
# Until this is fixed, we workaround it by simply retrying a few more times
|
|
# before giving up
|
|
# https://bugzilla.suse.com/show_bug.cgi?id=1055426
|
|
# https://bugs.launchpad.net/openstack-ansible/+bug/1712741
|
|
- name: Enable container sysctl service
|
|
service:
|
|
name: "sysctl-container"
|
|
state: started
|
|
enabled: yes
|
|
daemon_reload: yes
|
|
remote_user: root
|
|
register: _sysctl_service_started
|
|
until: _sysctl_service_started is success
|
|
retries: 5
|
|
delay: 5
|