56 lines
2.3 KiB
YAML
56 lines
2.3 KiB
YAML
---
|
|
# Copyright 2016, 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.
|
|
|
|
# Note this is a used in an iterable and requires the <item.value.interface> variable
|
|
# The container interface variable is a a default object that assume the
|
|
# Ansible iterator type is `with_dict`.
|
|
lxc_container_interface: |
|
|
### start generated network for [ {{ item.value.interface }} ] ###
|
|
auto {{ item.value.interface }}
|
|
{% if item.value.address is defined %}
|
|
iface {{ item.value.interface }} inet static
|
|
address {{ item.value.address }}
|
|
netmask {{ item.value.netmask }}
|
|
{% if item.value.gateway is defined %}
|
|
gateway {{ item.value.gateway }}
|
|
{% endif %}
|
|
mtu {{ item.value.mtu|default(lxc_container_default_mtu) }}
|
|
# needed to enable gratuitous arps on interface events
|
|
post-up sysctl -w net.ipv4.conf.$IFACE.arp_notify=1
|
|
# needed to force an interface event (setting mac to what it already is)
|
|
post-up ip link set $IFACE address $(cat /sys/class/net/$IFACE/address)
|
|
{% if item.value.static_routes is defined %}
|
|
{% for route in item.value.static_routes %}
|
|
post-up ip route add {{ route['cidr'] }} via {{ route['gateway'] }} || true
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% else %}
|
|
iface {{ item.value.interface }} inet manual
|
|
{% endif %}
|
|
### end generated network for [ {{ item.value.interface }} ] ###
|
|
|
|
# Notice this is already resolved in the debian interface file
|
|
lxc_container_default_route_interfaces:
|
|
route_file: "/dev/null"
|
|
route_setup: "This is already resolved in the debian interface file"
|
|
|
|
# Note this is a used in an iterable and requires the <item.value.interface> variable
|
|
lxc_container_interface_target: "/etc/network/interfaces.d/{{ item.value.interface }}.cfg"
|
|
|
|
lxc_container_map:
|
|
distro: ubuntu
|
|
arch: "{{ lxc_architecture_mapping.get( hostvars[physical_host]['ansible_architecture'] | lower ) }}"
|
|
release: trusty
|