[PR #9262/23d97fa4 backport][stable-10] Add inventory plugin iocage (#9378)
Add inventory plugin iocage (#9262)
* Add inventory plugin iocage #9261
* inventory/iocage.py BOTMETA entry added.
* Remove missing methods from the test.
* Avoid shell mode.
* Parameter host is optional default=localhost
* Fix AnsibleError calls.
* Update plugins/inventory/iocage.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/inventory/iocage.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/inventory/iocage.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/inventory/iocage.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/inventory/iocage.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/inventory/iocage.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/inventory/iocage.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* iocage_data removed. Not necessarily defined at this point.
* Description mentions that remote hosts are contacted via SSH.
* test inventory iocage
* Create get_jails and get_properties in iocage plugin to simplify testing.
* Update test_iocage.py
* Add fixtures iocage_*
* Update documentation.
* Update documentation.
* Update documentation.
* Fix localhost environment.
* Update plugins/inventory/iocage.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/inventory/iocage.py
Co-authored-by: Felix Fontein <felix@fontein.de>
---------
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 23d97fa4b0
)
Co-authored-by: Vladimir Botka <vbotka@gmail.com>
pull/9380/head
parent
f6fa7fb273
commit
60ba39da58
|
@ -213,6 +213,8 @@ files:
|
||||||
maintainers: opoplawski
|
maintainers: opoplawski
|
||||||
$inventories/gitlab_runners.py:
|
$inventories/gitlab_runners.py:
|
||||||
maintainers: morph027
|
maintainers: morph027
|
||||||
|
$inventories/iocage.py:
|
||||||
|
maintainers: vbotka
|
||||||
$inventories/icinga2.py:
|
$inventories/icinga2.py:
|
||||||
maintainers: BongoEADGC6
|
maintainers: BongoEADGC6
|
||||||
$inventories/linode.py:
|
$inventories/linode.py:
|
||||||
|
|
|
@ -0,0 +1,266 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# Copyright (c) 2024 Vladimir Botka <vbotka@gmail.com>
|
||||||
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
from __future__ import (absolute_import, division, print_function)
|
||||||
|
__metaclass__ = type
|
||||||
|
|
||||||
|
DOCUMENTATION = '''
|
||||||
|
name: iocage
|
||||||
|
short_description: iocage inventory source
|
||||||
|
version_added: 10.2.0
|
||||||
|
author:
|
||||||
|
- Vladimir Botka (@vbotka)
|
||||||
|
requirements:
|
||||||
|
- iocage >= 1.8
|
||||||
|
description:
|
||||||
|
- Get inventory hosts from the iocage jail manager running on O(host).
|
||||||
|
- By default, O(host) is V(localhost). If O(host) is not V(localhost) it
|
||||||
|
is expected that the user running Ansible on the controller can
|
||||||
|
connect to the O(host) account O(user) with SSH non-interactively and
|
||||||
|
execute the command C(iocage list).
|
||||||
|
- Uses a configuration file as an inventory source, it must end
|
||||||
|
in C(.iocage.yml) or C(.iocage.yaml).
|
||||||
|
extends_documentation_fragment:
|
||||||
|
- ansible.builtin.constructed
|
||||||
|
- ansible.builtin.inventory_cache
|
||||||
|
options:
|
||||||
|
plugin:
|
||||||
|
description:
|
||||||
|
- The name of this plugin, it should always be set to
|
||||||
|
V(community.general.iocage) for this plugin to recognize
|
||||||
|
it as its own.
|
||||||
|
required: true
|
||||||
|
choices: ['community.general.iocage']
|
||||||
|
type: str
|
||||||
|
host:
|
||||||
|
description: The IP/hostname of the C(iocage) host.
|
||||||
|
type: str
|
||||||
|
default: localhost
|
||||||
|
user:
|
||||||
|
description:
|
||||||
|
- C(iocage) user.
|
||||||
|
It is expected that the O(user) is able to connect to the
|
||||||
|
O(host) with SSH and execute the command C(iocage list).
|
||||||
|
This option is not required if O(host) is V(localhost).
|
||||||
|
type: str
|
||||||
|
get_properties:
|
||||||
|
description:
|
||||||
|
- Get jails' properties.
|
||||||
|
Creates dictionary C(iocage_properties) for each added host.
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
env:
|
||||||
|
description: O(user)'s environment on O(host).
|
||||||
|
type: dict
|
||||||
|
default: {}
|
||||||
|
notes:
|
||||||
|
- You might want to test the command C(ssh user@host iocage list -l) on
|
||||||
|
the controller before using this inventory plugin with O(user) specified
|
||||||
|
and with O(host) other than V(localhost).
|
||||||
|
- If you run this inventory plugin on V(localhost) C(ssh) is not used.
|
||||||
|
In this case, test the command C(iocage list -l).
|
||||||
|
- This inventory plugin creates variables C(iocage_*) for each added host.
|
||||||
|
- The values of these variables are collected from the output of the
|
||||||
|
command C(iocage list -l).
|
||||||
|
- The names of these variables correspond to the output columns.
|
||||||
|
- The column C(NAME) is used to name the added host.
|
||||||
|
'''
|
||||||
|
|
||||||
|
EXAMPLES = '''
|
||||||
|
# file name must end with iocage.yaml or iocage.yml
|
||||||
|
plugin: community.general.iocage
|
||||||
|
host: 10.1.0.73
|
||||||
|
user: admin
|
||||||
|
|
||||||
|
# user is not required if iocage is running on localhost (default)
|
||||||
|
plugin: community.general.iocage
|
||||||
|
|
||||||
|
# run cryptography without legacy algorithms
|
||||||
|
plugin: community.general.iocage
|
||||||
|
host: 10.1.0.73
|
||||||
|
user: admin
|
||||||
|
env:
|
||||||
|
CRYPTOGRAPHY_OPENSSL_NO_LEGACY: 1
|
||||||
|
|
||||||
|
# enable cache
|
||||||
|
plugin: community.general.iocage
|
||||||
|
host: 10.1.0.73
|
||||||
|
user: admin
|
||||||
|
env:
|
||||||
|
CRYPTOGRAPHY_OPENSSL_NO_LEGACY: 1
|
||||||
|
cache: true
|
||||||
|
|
||||||
|
# see inventory plugin ansible.builtin.constructed
|
||||||
|
plugin: community.general.iocage
|
||||||
|
host: 10.1.0.73
|
||||||
|
user: admin
|
||||||
|
env:
|
||||||
|
CRYPTOGRAPHY_OPENSSL_NO_LEGACY: 1
|
||||||
|
cache: true
|
||||||
|
strict: false
|
||||||
|
compose:
|
||||||
|
ansible_host: iocage_ip4
|
||||||
|
release: iocage_release | split('-') | first
|
||||||
|
groups:
|
||||||
|
test: inventory_hostname.startswith('test')
|
||||||
|
keyed_groups:
|
||||||
|
- prefix: distro
|
||||||
|
key: iocage_release
|
||||||
|
- prefix: state
|
||||||
|
key: iocage_state
|
||||||
|
'''
|
||||||
|
|
||||||
|
import re
|
||||||
|
import os
|
||||||
|
from subprocess import Popen, PIPE
|
||||||
|
|
||||||
|
from ansible.errors import AnsibleError, AnsibleParserError
|
||||||
|
from ansible.module_utils.common.text.converters import to_native, to_text
|
||||||
|
from ansible.plugins.inventory import BaseInventoryPlugin, Constructable, Cacheable
|
||||||
|
from ansible.utils.display import Display
|
||||||
|
|
||||||
|
display = Display()
|
||||||
|
|
||||||
|
|
||||||
|
def _parse_ip4(ip4):
|
||||||
|
if ip4 == '-':
|
||||||
|
return ip4
|
||||||
|
return re.split('\\||/', ip4)[1]
|
||||||
|
|
||||||
|
|
||||||
|
class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):
|
||||||
|
''' Host inventory parser for ansible using iocage as source. '''
|
||||||
|
|
||||||
|
NAME = 'community.general.iocage'
|
||||||
|
IOCAGE = '/usr/local/bin/iocage'
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
super(InventoryModule, self).__init__()
|
||||||
|
|
||||||
|
def verify_file(self, path):
|
||||||
|
valid = False
|
||||||
|
if super(InventoryModule, self).verify_file(path):
|
||||||
|
if path.endswith(('iocage.yaml', 'iocage.yml')):
|
||||||
|
valid = True
|
||||||
|
else:
|
||||||
|
self.display.vvv('Skipping due to inventory source not ending in "iocage.yaml" nor "iocage.yml"')
|
||||||
|
return valid
|
||||||
|
|
||||||
|
def parse(self, inventory, loader, path, cache=True):
|
||||||
|
super(InventoryModule, self).parse(inventory, loader, path)
|
||||||
|
|
||||||
|
self._read_config_data(path)
|
||||||
|
cache_key = self.get_cache_key(path)
|
||||||
|
|
||||||
|
user_cache_setting = self.get_option('cache')
|
||||||
|
attempt_to_read_cache = user_cache_setting and cache
|
||||||
|
cache_needs_update = user_cache_setting and not cache
|
||||||
|
|
||||||
|
if attempt_to_read_cache:
|
||||||
|
try:
|
||||||
|
results = self._cache[cache_key]
|
||||||
|
except KeyError:
|
||||||
|
cache_needs_update = True
|
||||||
|
if not attempt_to_read_cache or cache_needs_update:
|
||||||
|
results = self.get_inventory(path)
|
||||||
|
if cache_needs_update:
|
||||||
|
self._cache[cache_key] = results
|
||||||
|
|
||||||
|
self.populate(results)
|
||||||
|
|
||||||
|
def get_inventory(self, path):
|
||||||
|
host = self.get_option('host')
|
||||||
|
env = self.get_option('env')
|
||||||
|
get_properties = self.get_option('get_properties')
|
||||||
|
|
||||||
|
cmd = []
|
||||||
|
my_env = os.environ.copy()
|
||||||
|
if host == 'localhost':
|
||||||
|
my_env.update({str(k): str(v) for k, v in env.items()})
|
||||||
|
else:
|
||||||
|
user = self.get_option('user')
|
||||||
|
cmd.append("ssh")
|
||||||
|
cmd.append(f"{user}@{host}")
|
||||||
|
cmd.extend([f"{k}={v}" for k, v in env.items()])
|
||||||
|
cmd.append(self.IOCAGE)
|
||||||
|
|
||||||
|
cmd_list = cmd.copy()
|
||||||
|
cmd_list.append('list')
|
||||||
|
cmd_list.append('--header')
|
||||||
|
cmd_list.append('--long')
|
||||||
|
try:
|
||||||
|
p = Popen(cmd_list, stdout=PIPE, stderr=PIPE, env=my_env)
|
||||||
|
stdout, stderr = p.communicate()
|
||||||
|
if p.returncode != 0:
|
||||||
|
raise AnsibleError('Failed to run cmd=%s, rc=%s, stderr=%s' %
|
||||||
|
(cmd_list, p.returncode, to_native(stderr)))
|
||||||
|
|
||||||
|
try:
|
||||||
|
t_stdout = to_text(stdout, errors='surrogate_or_strict')
|
||||||
|
except UnicodeError as e:
|
||||||
|
raise AnsibleError('Invalid (non unicode) input returned: %s' % to_native(e)) from e
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
raise AnsibleParserError('Failed to parse %s: %s' %
|
||||||
|
(to_native(path), to_native(e))) from e
|
||||||
|
|
||||||
|
results = {'_meta': {'hostvars': {}}}
|
||||||
|
self.get_jails(t_stdout, results)
|
||||||
|
|
||||||
|
if get_properties:
|
||||||
|
for hostname, host_vars in results['_meta']['hostvars'].items():
|
||||||
|
cmd_get_properties = cmd.copy()
|
||||||
|
cmd_get_properties.append("get")
|
||||||
|
cmd_get_properties.append("--all")
|
||||||
|
cmd_get_properties.append(f"{hostname}")
|
||||||
|
try:
|
||||||
|
p = Popen(cmd_get_properties, stdout=PIPE, stderr=PIPE, env=my_env)
|
||||||
|
stdout, stderr = p.communicate()
|
||||||
|
if p.returncode != 0:
|
||||||
|
raise AnsibleError('Failed to run cmd=%s, rc=%s, stderr=%s' %
|
||||||
|
(cmd_get_properties, p.returncode, to_native(stderr)))
|
||||||
|
|
||||||
|
try:
|
||||||
|
t_stdout = to_text(stdout, errors='surrogate_or_strict')
|
||||||
|
except UnicodeError as e:
|
||||||
|
raise AnsibleError('Invalid (non unicode) input returned: %s' % to_native(e)) from e
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
raise AnsibleError('Failed to get properties: %s' % to_native(e)) from e
|
||||||
|
|
||||||
|
self.get_properties(t_stdout, results, hostname)
|
||||||
|
|
||||||
|
return results
|
||||||
|
|
||||||
|
def get_jails(self, t_stdout, results):
|
||||||
|
jails = [x.split() for x in t_stdout.splitlines()]
|
||||||
|
for jail in jails:
|
||||||
|
iocage_name = jail[1]
|
||||||
|
results['_meta']['hostvars'][iocage_name] = {}
|
||||||
|
results['_meta']['hostvars'][iocage_name]['iocage_jid'] = jail[0]
|
||||||
|
results['_meta']['hostvars'][iocage_name]['iocage_boot'] = jail[2]
|
||||||
|
results['_meta']['hostvars'][iocage_name]['iocage_state'] = jail[3]
|
||||||
|
results['_meta']['hostvars'][iocage_name]['iocage_type'] = jail[4]
|
||||||
|
results['_meta']['hostvars'][iocage_name]['iocage_release'] = jail[5]
|
||||||
|
results['_meta']['hostvars'][iocage_name]['iocage_ip4'] = _parse_ip4(jail[6])
|
||||||
|
results['_meta']['hostvars'][iocage_name]['iocage_ip6'] = jail[7]
|
||||||
|
results['_meta']['hostvars'][iocage_name]['iocage_template'] = jail[8]
|
||||||
|
results['_meta']['hostvars'][iocage_name]['iocage_basejail'] = jail[9]
|
||||||
|
|
||||||
|
def get_properties(self, t_stdout, results, hostname):
|
||||||
|
properties = dict([x.split(':', 1) for x in t_stdout.splitlines()])
|
||||||
|
results['_meta']['hostvars'][hostname]['iocage_properties'] = properties
|
||||||
|
|
||||||
|
def populate(self, results):
|
||||||
|
strict = self.get_option('strict')
|
||||||
|
|
||||||
|
for hostname, host_vars in results['_meta']['hostvars'].items():
|
||||||
|
self.inventory.add_host(hostname, group='all')
|
||||||
|
for var, value in host_vars.items():
|
||||||
|
self.inventory.set_variable(hostname, var, value)
|
||||||
|
self._set_composite_vars(self.get_option('compose'), host_vars, hostname, strict=True)
|
||||||
|
self._add_host_to_composed_groups(self.get_option('groups'), host_vars, hostname, strict=strict)
|
||||||
|
self._add_host_to_keyed_groups(self.get_option('keyed_groups'), host_vars, hostname, strict=strict)
|
|
@ -0,0 +1,460 @@
|
||||||
|
all:
|
||||||
|
children:
|
||||||
|
test:
|
||||||
|
hosts:
|
||||||
|
test_101:
|
||||||
|
iocage_basejail: 'yes'
|
||||||
|
iocage_boot: 'off'
|
||||||
|
iocage_ip4: 10.1.0.101
|
||||||
|
iocage_ip6: '-'
|
||||||
|
iocage_jid: '-'
|
||||||
|
iocage_properties:
|
||||||
|
CONFIG_VERSION: '28'
|
||||||
|
allow_chflags: '0'
|
||||||
|
allow_mlock: '0'
|
||||||
|
allow_mount: '0'
|
||||||
|
allow_mount_devfs: '0'
|
||||||
|
allow_mount_fusefs: '0'
|
||||||
|
allow_mount_nullfs: '0'
|
||||||
|
allow_mount_procfs: '0'
|
||||||
|
allow_mount_tmpfs: '0'
|
||||||
|
allow_mount_zfs: '0'
|
||||||
|
allow_quotas: '0'
|
||||||
|
allow_raw_sockets: '0'
|
||||||
|
allow_set_hostname: '1'
|
||||||
|
allow_socket_af: '0'
|
||||||
|
allow_sysvipc: '0'
|
||||||
|
allow_tun: '0'
|
||||||
|
allow_vmm: '0'
|
||||||
|
assign_localhost: '0'
|
||||||
|
available: readonly
|
||||||
|
basejail: '1'
|
||||||
|
boot: '0'
|
||||||
|
bpf: '0'
|
||||||
|
children_max: '0'
|
||||||
|
comment: none
|
||||||
|
compression: lz4
|
||||||
|
compressratio: readonly
|
||||||
|
coredumpsize: 'off'
|
||||||
|
count: '1'
|
||||||
|
cpuset: 'off'
|
||||||
|
cputime: 'off'
|
||||||
|
datasize: 'off'
|
||||||
|
dedup: 'off'
|
||||||
|
defaultrouter: 10.1.0.10
|
||||||
|
defaultrouter6: auto
|
||||||
|
depends: none
|
||||||
|
devfs_ruleset: '4'
|
||||||
|
dhcp: '0'
|
||||||
|
enforce_statfs: '2'
|
||||||
|
exec_clean: '1'
|
||||||
|
exec_created: /usr/bin/true
|
||||||
|
exec_fib: '0'
|
||||||
|
exec_jail_user: root
|
||||||
|
exec_poststart: /usr/bin/true
|
||||||
|
exec_poststop: /usr/bin/true
|
||||||
|
exec_prestart: /usr/bin/true
|
||||||
|
exec_prestop: /usr/bin/true
|
||||||
|
exec_start: /bin/sh /etc/rc
|
||||||
|
exec_stop: /bin/sh /etc/rc.shutdown
|
||||||
|
exec_system_jail_user: '0'
|
||||||
|
exec_system_user: root
|
||||||
|
exec_timeout: '60'
|
||||||
|
host_domainname: none
|
||||||
|
host_hostname: ansible-client
|
||||||
|
host_hostuuid: test_101
|
||||||
|
host_time: '1'
|
||||||
|
hostid: 34333834-3734-5a43-3331-313342464631
|
||||||
|
hostid_strict_check: '0'
|
||||||
|
interfaces: vnet0:bridge0
|
||||||
|
ip4: new
|
||||||
|
ip4_addr: vnet0|10.1.0.101/24
|
||||||
|
ip4_saddrsel: '1'
|
||||||
|
ip6: new
|
||||||
|
ip6_addr: none
|
||||||
|
ip6_saddrsel: '1'
|
||||||
|
ip_hostname: '0'
|
||||||
|
jail_zfs: '0'
|
||||||
|
jail_zfs_dataset: iocage/jails/test_101/data
|
||||||
|
jail_zfs_mountpoint: none
|
||||||
|
last_started: none
|
||||||
|
localhost_ip: none
|
||||||
|
login_flags: -f root
|
||||||
|
mac_prefix: 3e4a92
|
||||||
|
maxproc: 'off'
|
||||||
|
memorylocked: 'off'
|
||||||
|
memoryuse: 'off'
|
||||||
|
min_dyn_devfs_ruleset: '1000'
|
||||||
|
mount_devfs: '1'
|
||||||
|
mount_fdescfs: '1'
|
||||||
|
mount_linprocfs: '0'
|
||||||
|
mount_procfs: '0'
|
||||||
|
mountpoint: readonly
|
||||||
|
msgqqueued: 'off'
|
||||||
|
msgqsize: 'off'
|
||||||
|
nat: '0'
|
||||||
|
nat_backend: ipfw
|
||||||
|
nat_forwards: none
|
||||||
|
nat_interface: none
|
||||||
|
nat_prefix: '172.16'
|
||||||
|
nmsgq: 'off'
|
||||||
|
notes: vmm=iocage_01
|
||||||
|
nsem: 'off'
|
||||||
|
nsemop: 'off'
|
||||||
|
nshm: 'off'
|
||||||
|
nthr: 'off'
|
||||||
|
openfiles: 'off'
|
||||||
|
origin: readonly
|
||||||
|
owner: root
|
||||||
|
pcpu: 'off'
|
||||||
|
plugin_name: none
|
||||||
|
plugin_repository: none
|
||||||
|
priority: '99'
|
||||||
|
pseudoterminals: 'off'
|
||||||
|
quota: none
|
||||||
|
readbps: 'off'
|
||||||
|
readiops: 'off'
|
||||||
|
release: 13.4-RELEASE-p2
|
||||||
|
reservation: none
|
||||||
|
resolver: /etc/resolv.conf
|
||||||
|
rlimits: 'off'
|
||||||
|
rtsold: '0'
|
||||||
|
securelevel: '2'
|
||||||
|
shmsize: 'off'
|
||||||
|
stacksize: 'off'
|
||||||
|
state: down
|
||||||
|
stop_timeout: '30'
|
||||||
|
swapuse: 'off'
|
||||||
|
sync_state: none
|
||||||
|
sync_target: none
|
||||||
|
sync_tgt_zpool: none
|
||||||
|
sysvmsg: new
|
||||||
|
sysvsem: new
|
||||||
|
sysvshm: new
|
||||||
|
template: '0'
|
||||||
|
type: jail
|
||||||
|
used: readonly
|
||||||
|
vmemoryuse: 'off'
|
||||||
|
vnet: '1'
|
||||||
|
vnet0_mac: none
|
||||||
|
vnet0_mtu: auto
|
||||||
|
vnet1_mac: none
|
||||||
|
vnet1_mtu: auto
|
||||||
|
vnet2_mac: none
|
||||||
|
vnet2_mtu: auto
|
||||||
|
vnet3_mac: none
|
||||||
|
vnet3_mtu: auto
|
||||||
|
vnet_default_interface: auto
|
||||||
|
vnet_default_mtu: '1500'
|
||||||
|
vnet_interfaces: none
|
||||||
|
wallclock: 'off'
|
||||||
|
writebps: 'off'
|
||||||
|
writeiops: 'off'
|
||||||
|
iocage_release: 13.4-RELEASE-p2
|
||||||
|
iocage_state: down
|
||||||
|
iocage_template: ansible_client
|
||||||
|
iocage_type: jail
|
||||||
|
test_102:
|
||||||
|
iocage_basejail: 'yes'
|
||||||
|
iocage_boot: 'off'
|
||||||
|
iocage_ip4: 10.1.0.102
|
||||||
|
iocage_ip6: '-'
|
||||||
|
iocage_jid: '-'
|
||||||
|
iocage_properties:
|
||||||
|
CONFIG_VERSION: '28'
|
||||||
|
allow_chflags: '0'
|
||||||
|
allow_mlock: '0'
|
||||||
|
allow_mount: '0'
|
||||||
|
allow_mount_devfs: '0'
|
||||||
|
allow_mount_fusefs: '0'
|
||||||
|
allow_mount_nullfs: '0'
|
||||||
|
allow_mount_procfs: '0'
|
||||||
|
allow_mount_tmpfs: '0'
|
||||||
|
allow_mount_zfs: '0'
|
||||||
|
allow_quotas: '0'
|
||||||
|
allow_raw_sockets: '0'
|
||||||
|
allow_set_hostname: '1'
|
||||||
|
allow_socket_af: '0'
|
||||||
|
allow_sysvipc: '0'
|
||||||
|
allow_tun: '0'
|
||||||
|
allow_vmm: '0'
|
||||||
|
assign_localhost: '0'
|
||||||
|
available: readonly
|
||||||
|
basejail: '1'
|
||||||
|
boot: '0'
|
||||||
|
bpf: '0'
|
||||||
|
children_max: '0'
|
||||||
|
comment: none
|
||||||
|
compression: lz4
|
||||||
|
compressratio: readonly
|
||||||
|
coredumpsize: 'off'
|
||||||
|
count: '1'
|
||||||
|
cpuset: 'off'
|
||||||
|
cputime: 'off'
|
||||||
|
datasize: 'off'
|
||||||
|
dedup: 'off'
|
||||||
|
defaultrouter: 10.1.0.10
|
||||||
|
defaultrouter6: auto
|
||||||
|
depends: none
|
||||||
|
devfs_ruleset: '4'
|
||||||
|
dhcp: '0'
|
||||||
|
enforce_statfs: '2'
|
||||||
|
exec_clean: '1'
|
||||||
|
exec_created: /usr/bin/true
|
||||||
|
exec_fib: '0'
|
||||||
|
exec_jail_user: root
|
||||||
|
exec_poststart: /usr/bin/true
|
||||||
|
exec_poststop: /usr/bin/true
|
||||||
|
exec_prestart: /usr/bin/true
|
||||||
|
exec_prestop: /usr/bin/true
|
||||||
|
exec_start: /bin/sh /etc/rc
|
||||||
|
exec_stop: /bin/sh /etc/rc.shutdown
|
||||||
|
exec_system_jail_user: '0'
|
||||||
|
exec_system_user: root
|
||||||
|
exec_timeout: '60'
|
||||||
|
host_domainname: none
|
||||||
|
host_hostname: ansible-client
|
||||||
|
host_hostuuid: test_102
|
||||||
|
host_time: '1'
|
||||||
|
hostid: 34333834-3734-5a43-3331-313342464631
|
||||||
|
hostid_strict_check: '0'
|
||||||
|
interfaces: vnet0:bridge0
|
||||||
|
ip4: new
|
||||||
|
ip4_addr: vnet0|10.1.0.102/24
|
||||||
|
ip4_saddrsel: '1'
|
||||||
|
ip6: new
|
||||||
|
ip6_addr: none
|
||||||
|
ip6_saddrsel: '1'
|
||||||
|
ip_hostname: '0'
|
||||||
|
jail_zfs: '0'
|
||||||
|
jail_zfs_dataset: iocage/jails/test_102/data
|
||||||
|
jail_zfs_mountpoint: none
|
||||||
|
last_started: none
|
||||||
|
localhost_ip: none
|
||||||
|
login_flags: -f root
|
||||||
|
mac_prefix: 3e4a92
|
||||||
|
maxproc: 'off'
|
||||||
|
memorylocked: 'off'
|
||||||
|
memoryuse: 'off'
|
||||||
|
min_dyn_devfs_ruleset: '1000'
|
||||||
|
mount_devfs: '1'
|
||||||
|
mount_fdescfs: '1'
|
||||||
|
mount_linprocfs: '0'
|
||||||
|
mount_procfs: '0'
|
||||||
|
mountpoint: readonly
|
||||||
|
msgqqueued: 'off'
|
||||||
|
msgqsize: 'off'
|
||||||
|
nat: '0'
|
||||||
|
nat_backend: ipfw
|
||||||
|
nat_forwards: none
|
||||||
|
nat_interface: none
|
||||||
|
nat_prefix: '172.16'
|
||||||
|
nmsgq: 'off'
|
||||||
|
notes: vmm=iocage_01
|
||||||
|
nsem: 'off'
|
||||||
|
nsemop: 'off'
|
||||||
|
nshm: 'off'
|
||||||
|
nthr: 'off'
|
||||||
|
openfiles: 'off'
|
||||||
|
origin: readonly
|
||||||
|
owner: root
|
||||||
|
pcpu: 'off'
|
||||||
|
plugin_name: none
|
||||||
|
plugin_repository: none
|
||||||
|
priority: '99'
|
||||||
|
pseudoterminals: 'off'
|
||||||
|
quota: none
|
||||||
|
readbps: 'off'
|
||||||
|
readiops: 'off'
|
||||||
|
release: 13.4-RELEASE-p2
|
||||||
|
reservation: none
|
||||||
|
resolver: /etc/resolv.conf
|
||||||
|
rlimits: 'off'
|
||||||
|
rtsold: '0'
|
||||||
|
securelevel: '2'
|
||||||
|
shmsize: 'off'
|
||||||
|
stacksize: 'off'
|
||||||
|
state: down
|
||||||
|
stop_timeout: '30'
|
||||||
|
swapuse: 'off'
|
||||||
|
sync_state: none
|
||||||
|
sync_target: none
|
||||||
|
sync_tgt_zpool: none
|
||||||
|
sysvmsg: new
|
||||||
|
sysvsem: new
|
||||||
|
sysvshm: new
|
||||||
|
template: '0'
|
||||||
|
type: jail
|
||||||
|
used: readonly
|
||||||
|
vmemoryuse: 'off'
|
||||||
|
vnet: '1'
|
||||||
|
vnet0_mac: none
|
||||||
|
vnet0_mtu: auto
|
||||||
|
vnet1_mac: none
|
||||||
|
vnet1_mtu: auto
|
||||||
|
vnet2_mac: none
|
||||||
|
vnet2_mtu: auto
|
||||||
|
vnet3_mac: none
|
||||||
|
vnet3_mtu: auto
|
||||||
|
vnet_default_interface: auto
|
||||||
|
vnet_default_mtu: '1500'
|
||||||
|
vnet_interfaces: none
|
||||||
|
wallclock: 'off'
|
||||||
|
writebps: 'off'
|
||||||
|
writeiops: 'off'
|
||||||
|
iocage_release: 13.4-RELEASE-p2
|
||||||
|
iocage_state: down
|
||||||
|
iocage_template: ansible_client
|
||||||
|
iocage_type: jail
|
||||||
|
test_103:
|
||||||
|
iocage_basejail: 'yes'
|
||||||
|
iocage_boot: 'off'
|
||||||
|
iocage_ip4: 10.1.0.103
|
||||||
|
iocage_ip6: '-'
|
||||||
|
iocage_jid: '-'
|
||||||
|
iocage_properties:
|
||||||
|
CONFIG_VERSION: '28'
|
||||||
|
allow_chflags: '0'
|
||||||
|
allow_mlock: '0'
|
||||||
|
allow_mount: '0'
|
||||||
|
allow_mount_devfs: '0'
|
||||||
|
allow_mount_fusefs: '0'
|
||||||
|
allow_mount_nullfs: '0'
|
||||||
|
allow_mount_procfs: '0'
|
||||||
|
allow_mount_tmpfs: '0'
|
||||||
|
allow_mount_zfs: '0'
|
||||||
|
allow_quotas: '0'
|
||||||
|
allow_raw_sockets: '0'
|
||||||
|
allow_set_hostname: '1'
|
||||||
|
allow_socket_af: '0'
|
||||||
|
allow_sysvipc: '0'
|
||||||
|
allow_tun: '0'
|
||||||
|
allow_vmm: '0'
|
||||||
|
assign_localhost: '0'
|
||||||
|
available: readonly
|
||||||
|
basejail: '1'
|
||||||
|
boot: '0'
|
||||||
|
bpf: '0'
|
||||||
|
children_max: '0'
|
||||||
|
comment: none
|
||||||
|
compression: lz4
|
||||||
|
compressratio: readonly
|
||||||
|
coredumpsize: 'off'
|
||||||
|
count: '1'
|
||||||
|
cpuset: 'off'
|
||||||
|
cputime: 'off'
|
||||||
|
datasize: 'off'
|
||||||
|
dedup: 'off'
|
||||||
|
defaultrouter: 10.1.0.10
|
||||||
|
defaultrouter6: auto
|
||||||
|
depends: none
|
||||||
|
devfs_ruleset: '4'
|
||||||
|
dhcp: '0'
|
||||||
|
enforce_statfs: '2'
|
||||||
|
exec_clean: '1'
|
||||||
|
exec_created: /usr/bin/true
|
||||||
|
exec_fib: '0'
|
||||||
|
exec_jail_user: root
|
||||||
|
exec_poststart: /usr/bin/true
|
||||||
|
exec_poststop: /usr/bin/true
|
||||||
|
exec_prestart: /usr/bin/true
|
||||||
|
exec_prestop: /usr/bin/true
|
||||||
|
exec_start: /bin/sh /etc/rc
|
||||||
|
exec_stop: /bin/sh /etc/rc.shutdown
|
||||||
|
exec_system_jail_user: '0'
|
||||||
|
exec_system_user: root
|
||||||
|
exec_timeout: '60'
|
||||||
|
host_domainname: none
|
||||||
|
host_hostname: ansible-client
|
||||||
|
host_hostuuid: test_103
|
||||||
|
host_time: '1'
|
||||||
|
hostid: 34333834-3734-5a43-3331-313342464631
|
||||||
|
hostid_strict_check: '0'
|
||||||
|
interfaces: vnet0:bridge0
|
||||||
|
ip4: new
|
||||||
|
ip4_addr: vnet0|10.1.0.103/24
|
||||||
|
ip4_saddrsel: '1'
|
||||||
|
ip6: new
|
||||||
|
ip6_addr: none
|
||||||
|
ip6_saddrsel: '1'
|
||||||
|
ip_hostname: '0'
|
||||||
|
jail_zfs: '0'
|
||||||
|
jail_zfs_dataset: iocage/jails/test_103/data
|
||||||
|
jail_zfs_mountpoint: none
|
||||||
|
last_started: none
|
||||||
|
localhost_ip: none
|
||||||
|
login_flags: -f root
|
||||||
|
mac_prefix: 3e4a92
|
||||||
|
maxproc: 'off'
|
||||||
|
memorylocked: 'off'
|
||||||
|
memoryuse: 'off'
|
||||||
|
min_dyn_devfs_ruleset: '1000'
|
||||||
|
mount_devfs: '1'
|
||||||
|
mount_fdescfs: '1'
|
||||||
|
mount_linprocfs: '0'
|
||||||
|
mount_procfs: '0'
|
||||||
|
mountpoint: readonly
|
||||||
|
msgqqueued: 'off'
|
||||||
|
msgqsize: 'off'
|
||||||
|
nat: '0'
|
||||||
|
nat_backend: ipfw
|
||||||
|
nat_forwards: none
|
||||||
|
nat_interface: none
|
||||||
|
nat_prefix: '172.16'
|
||||||
|
nmsgq: 'off'
|
||||||
|
notes: vmm=iocage_01
|
||||||
|
nsem: 'off'
|
||||||
|
nsemop: 'off'
|
||||||
|
nshm: 'off'
|
||||||
|
nthr: 'off'
|
||||||
|
openfiles: 'off'
|
||||||
|
origin: readonly
|
||||||
|
owner: root
|
||||||
|
pcpu: 'off'
|
||||||
|
plugin_name: none
|
||||||
|
plugin_repository: none
|
||||||
|
priority: '99'
|
||||||
|
pseudoterminals: 'off'
|
||||||
|
quota: none
|
||||||
|
readbps: 'off'
|
||||||
|
readiops: 'off'
|
||||||
|
release: 13.4-RELEASE-p2
|
||||||
|
reservation: none
|
||||||
|
resolver: /etc/resolv.conf
|
||||||
|
rlimits: 'off'
|
||||||
|
rtsold: '0'
|
||||||
|
securelevel: '2'
|
||||||
|
shmsize: 'off'
|
||||||
|
stacksize: 'off'
|
||||||
|
state: down
|
||||||
|
stop_timeout: '30'
|
||||||
|
swapuse: 'off'
|
||||||
|
sync_state: none
|
||||||
|
sync_target: none
|
||||||
|
sync_tgt_zpool: none
|
||||||
|
sysvmsg: new
|
||||||
|
sysvsem: new
|
||||||
|
sysvshm: new
|
||||||
|
template: '0'
|
||||||
|
type: jail
|
||||||
|
used: readonly
|
||||||
|
vmemoryuse: 'off'
|
||||||
|
vnet: '1'
|
||||||
|
vnet0_mac: none
|
||||||
|
vnet0_mtu: auto
|
||||||
|
vnet1_mac: none
|
||||||
|
vnet1_mtu: auto
|
||||||
|
vnet2_mac: none
|
||||||
|
vnet2_mtu: auto
|
||||||
|
vnet3_mac: none
|
||||||
|
vnet3_mtu: auto
|
||||||
|
vnet_default_interface: auto
|
||||||
|
vnet_default_mtu: '1500'
|
||||||
|
vnet_interfaces: none
|
||||||
|
wallclock: 'off'
|
||||||
|
writebps: 'off'
|
||||||
|
writeiops: 'off'
|
||||||
|
iocage_release: 13.4-RELEASE-p2
|
||||||
|
iocage_state: down
|
||||||
|
iocage_template: ansible_client
|
||||||
|
iocage_type: jail
|
|
@ -0,0 +1,3 @@
|
||||||
|
GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
SPDX-FileCopyrightText: Ansible Project
|
|
@ -0,0 +1,3 @@
|
||||||
|
- test_101 off down jail 13.4-RELEASE-p2 vnet0|10.1.0.101/24 - ansible_client yes
|
||||||
|
- test_102 off down jail 13.4-RELEASE-p2 vnet0|10.1.0.102/24 - ansible_client yes
|
||||||
|
- test_103 off down jail 13.4-RELEASE-p2 vnet0|10.1.0.103/24 - ansible_client yes
|
|
@ -0,0 +1,3 @@
|
||||||
|
GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
SPDX-FileCopyrightText: Ansible Project
|
|
@ -0,0 +1,32 @@
|
||||||
|
_meta:
|
||||||
|
hostvars:
|
||||||
|
test_101:
|
||||||
|
iocage_basejail: 'yes'
|
||||||
|
iocage_boot: 'off'
|
||||||
|
iocage_ip4: 10.1.0.101
|
||||||
|
iocage_ip6: '-'
|
||||||
|
iocage_jid: '-'
|
||||||
|
iocage_release: 13.4-RELEASE-p2
|
||||||
|
iocage_state: down
|
||||||
|
iocage_template: ansible_client
|
||||||
|
iocage_type: jail
|
||||||
|
test_102:
|
||||||
|
iocage_basejail: 'yes'
|
||||||
|
iocage_boot: 'off'
|
||||||
|
iocage_ip4: 10.1.0.102
|
||||||
|
iocage_ip6: '-'
|
||||||
|
iocage_jid: '-'
|
||||||
|
iocage_release: 13.4-RELEASE-p2
|
||||||
|
iocage_state: down
|
||||||
|
iocage_template: ansible_client
|
||||||
|
iocage_type: jail
|
||||||
|
test_103:
|
||||||
|
iocage_basejail: 'yes'
|
||||||
|
iocage_boot: 'off'
|
||||||
|
iocage_ip4: 10.1.0.103
|
||||||
|
iocage_ip6: '-'
|
||||||
|
iocage_jid: '-'
|
||||||
|
iocage_release: 13.4-RELEASE-p2
|
||||||
|
iocage_state: down
|
||||||
|
iocage_template: ansible_client
|
||||||
|
iocage_type: jail
|
|
@ -0,0 +1,3 @@
|
||||||
|
GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
SPDX-FileCopyrightText: Ansible Project
|
|
@ -0,0 +1,11 @@
|
||||||
|
CONFIG_VERSION:28
|
||||||
|
notes:abbridged_properties
|
||||||
|
allow_chflags:0
|
||||||
|
allow_mlock:0
|
||||||
|
allow_mount:0
|
||||||
|
allow_mount_devfs:0
|
||||||
|
allow_mount_fusefs:0
|
||||||
|
allow_mount_nullfs:0
|
||||||
|
allow_mount_procfs:0
|
||||||
|
allow_mount_tmpfs:0
|
||||||
|
allow_mount_zfs:0
|
|
@ -0,0 +1,3 @@
|
||||||
|
GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
SPDX-FileCopyrightText: Ansible Project
|
|
@ -0,0 +1,458 @@
|
||||||
|
_meta:
|
||||||
|
hostvars:
|
||||||
|
test_101:
|
||||||
|
iocage_basejail: 'yes'
|
||||||
|
iocage_boot: 'off'
|
||||||
|
iocage_ip4: 10.1.0.101
|
||||||
|
iocage_ip6: '-'
|
||||||
|
iocage_jid: '-'
|
||||||
|
iocage_properties:
|
||||||
|
CONFIG_VERSION: '28'
|
||||||
|
allow_chflags: '0'
|
||||||
|
allow_mlock: '0'
|
||||||
|
allow_mount: '0'
|
||||||
|
allow_mount_devfs: '0'
|
||||||
|
allow_mount_fusefs: '0'
|
||||||
|
allow_mount_nullfs: '0'
|
||||||
|
allow_mount_procfs: '0'
|
||||||
|
allow_mount_tmpfs: '0'
|
||||||
|
allow_mount_zfs: '0'
|
||||||
|
allow_quotas: '0'
|
||||||
|
allow_raw_sockets: '0'
|
||||||
|
allow_set_hostname: '1'
|
||||||
|
allow_socket_af: '0'
|
||||||
|
allow_sysvipc: '0'
|
||||||
|
allow_tun: '0'
|
||||||
|
allow_vmm: '0'
|
||||||
|
assign_localhost: '0'
|
||||||
|
available: readonly
|
||||||
|
basejail: '1'
|
||||||
|
boot: '0'
|
||||||
|
bpf: '0'
|
||||||
|
children_max: '0'
|
||||||
|
comment: none
|
||||||
|
compression: lz4
|
||||||
|
compressratio: readonly
|
||||||
|
coredumpsize: 'off'
|
||||||
|
count: '1'
|
||||||
|
cpuset: 'off'
|
||||||
|
cputime: 'off'
|
||||||
|
datasize: 'off'
|
||||||
|
dedup: 'off'
|
||||||
|
defaultrouter: 10.1.0.10
|
||||||
|
defaultrouter6: auto
|
||||||
|
depends: none
|
||||||
|
devfs_ruleset: '4'
|
||||||
|
dhcp: '0'
|
||||||
|
enforce_statfs: '2'
|
||||||
|
exec_clean: '1'
|
||||||
|
exec_created: /usr/bin/true
|
||||||
|
exec_fib: '0'
|
||||||
|
exec_jail_user: root
|
||||||
|
exec_poststart: /usr/bin/true
|
||||||
|
exec_poststop: /usr/bin/true
|
||||||
|
exec_prestart: /usr/bin/true
|
||||||
|
exec_prestop: /usr/bin/true
|
||||||
|
exec_start: /bin/sh /etc/rc
|
||||||
|
exec_stop: /bin/sh /etc/rc.shutdown
|
||||||
|
exec_system_jail_user: '0'
|
||||||
|
exec_system_user: root
|
||||||
|
exec_timeout: '60'
|
||||||
|
host_domainname: none
|
||||||
|
host_hostname: ansible-client
|
||||||
|
host_hostuuid: test_101
|
||||||
|
host_time: '1'
|
||||||
|
hostid: 34333834-3734-5a43-3331-313342464631
|
||||||
|
hostid_strict_check: '0'
|
||||||
|
interfaces: vnet0:bridge0
|
||||||
|
ip4: new
|
||||||
|
ip4_addr: vnet0|10.1.0.101/24
|
||||||
|
ip4_saddrsel: '1'
|
||||||
|
ip6: new
|
||||||
|
ip6_addr: none
|
||||||
|
ip6_saddrsel: '1'
|
||||||
|
ip_hostname: '0'
|
||||||
|
jail_zfs: '0'
|
||||||
|
jail_zfs_dataset: iocage/jails/test_101/data
|
||||||
|
jail_zfs_mountpoint: none
|
||||||
|
last_started: none
|
||||||
|
localhost_ip: none
|
||||||
|
login_flags: -f root
|
||||||
|
mac_prefix: 3e4a92
|
||||||
|
maxproc: 'off'
|
||||||
|
memorylocked: 'off'
|
||||||
|
memoryuse: 'off'
|
||||||
|
min_dyn_devfs_ruleset: '1000'
|
||||||
|
mount_devfs: '1'
|
||||||
|
mount_fdescfs: '1'
|
||||||
|
mount_linprocfs: '0'
|
||||||
|
mount_procfs: '0'
|
||||||
|
mountpoint: readonly
|
||||||
|
msgqqueued: 'off'
|
||||||
|
msgqsize: 'off'
|
||||||
|
nat: '0'
|
||||||
|
nat_backend: ipfw
|
||||||
|
nat_forwards: none
|
||||||
|
nat_interface: none
|
||||||
|
nat_prefix: '172.16'
|
||||||
|
nmsgq: 'off'
|
||||||
|
notes: vmm=iocage_01
|
||||||
|
nsem: 'off'
|
||||||
|
nsemop: 'off'
|
||||||
|
nshm: 'off'
|
||||||
|
nthr: 'off'
|
||||||
|
openfiles: 'off'
|
||||||
|
origin: readonly
|
||||||
|
owner: root
|
||||||
|
pcpu: 'off'
|
||||||
|
plugin_name: none
|
||||||
|
plugin_repository: none
|
||||||
|
priority: '99'
|
||||||
|
pseudoterminals: 'off'
|
||||||
|
quota: none
|
||||||
|
readbps: 'off'
|
||||||
|
readiops: 'off'
|
||||||
|
release: 13.4-RELEASE-p2
|
||||||
|
reservation: none
|
||||||
|
resolver: /etc/resolv.conf
|
||||||
|
rlimits: 'off'
|
||||||
|
rtsold: '0'
|
||||||
|
securelevel: '2'
|
||||||
|
shmsize: 'off'
|
||||||
|
stacksize: 'off'
|
||||||
|
state: down
|
||||||
|
stop_timeout: '30'
|
||||||
|
swapuse: 'off'
|
||||||
|
sync_state: none
|
||||||
|
sync_target: none
|
||||||
|
sync_tgt_zpool: none
|
||||||
|
sysvmsg: new
|
||||||
|
sysvsem: new
|
||||||
|
sysvshm: new
|
||||||
|
template: '0'
|
||||||
|
type: jail
|
||||||
|
used: readonly
|
||||||
|
vmemoryuse: 'off'
|
||||||
|
vnet: '1'
|
||||||
|
vnet0_mac: none
|
||||||
|
vnet0_mtu: auto
|
||||||
|
vnet1_mac: none
|
||||||
|
vnet1_mtu: auto
|
||||||
|
vnet2_mac: none
|
||||||
|
vnet2_mtu: auto
|
||||||
|
vnet3_mac: none
|
||||||
|
vnet3_mtu: auto
|
||||||
|
vnet_default_interface: auto
|
||||||
|
vnet_default_mtu: '1500'
|
||||||
|
vnet_interfaces: none
|
||||||
|
wallclock: 'off'
|
||||||
|
writebps: 'off'
|
||||||
|
writeiops: 'off'
|
||||||
|
iocage_release: 13.4-RELEASE-p2
|
||||||
|
iocage_state: down
|
||||||
|
iocage_template: ansible_client
|
||||||
|
iocage_type: jail
|
||||||
|
test_102:
|
||||||
|
iocage_basejail: 'yes'
|
||||||
|
iocage_boot: 'off'
|
||||||
|
iocage_ip4: 10.1.0.102
|
||||||
|
iocage_ip6: '-'
|
||||||
|
iocage_jid: '-'
|
||||||
|
iocage_properties:
|
||||||
|
CONFIG_VERSION: '28'
|
||||||
|
allow_chflags: '0'
|
||||||
|
allow_mlock: '0'
|
||||||
|
allow_mount: '0'
|
||||||
|
allow_mount_devfs: '0'
|
||||||
|
allow_mount_fusefs: '0'
|
||||||
|
allow_mount_nullfs: '0'
|
||||||
|
allow_mount_procfs: '0'
|
||||||
|
allow_mount_tmpfs: '0'
|
||||||
|
allow_mount_zfs: '0'
|
||||||
|
allow_quotas: '0'
|
||||||
|
allow_raw_sockets: '0'
|
||||||
|
allow_set_hostname: '1'
|
||||||
|
allow_socket_af: '0'
|
||||||
|
allow_sysvipc: '0'
|
||||||
|
allow_tun: '0'
|
||||||
|
allow_vmm: '0'
|
||||||
|
assign_localhost: '0'
|
||||||
|
available: readonly
|
||||||
|
basejail: '1'
|
||||||
|
boot: '0'
|
||||||
|
bpf: '0'
|
||||||
|
children_max: '0'
|
||||||
|
comment: none
|
||||||
|
compression: lz4
|
||||||
|
compressratio: readonly
|
||||||
|
coredumpsize: 'off'
|
||||||
|
count: '1'
|
||||||
|
cpuset: 'off'
|
||||||
|
cputime: 'off'
|
||||||
|
datasize: 'off'
|
||||||
|
dedup: 'off'
|
||||||
|
defaultrouter: 10.1.0.10
|
||||||
|
defaultrouter6: auto
|
||||||
|
depends: none
|
||||||
|
devfs_ruleset: '4'
|
||||||
|
dhcp: '0'
|
||||||
|
enforce_statfs: '2'
|
||||||
|
exec_clean: '1'
|
||||||
|
exec_created: /usr/bin/true
|
||||||
|
exec_fib: '0'
|
||||||
|
exec_jail_user: root
|
||||||
|
exec_poststart: /usr/bin/true
|
||||||
|
exec_poststop: /usr/bin/true
|
||||||
|
exec_prestart: /usr/bin/true
|
||||||
|
exec_prestop: /usr/bin/true
|
||||||
|
exec_start: /bin/sh /etc/rc
|
||||||
|
exec_stop: /bin/sh /etc/rc.shutdown
|
||||||
|
exec_system_jail_user: '0'
|
||||||
|
exec_system_user: root
|
||||||
|
exec_timeout: '60'
|
||||||
|
host_domainname: none
|
||||||
|
host_hostname: ansible-client
|
||||||
|
host_hostuuid: test_102
|
||||||
|
host_time: '1'
|
||||||
|
hostid: 34333834-3734-5a43-3331-313342464631
|
||||||
|
hostid_strict_check: '0'
|
||||||
|
interfaces: vnet0:bridge0
|
||||||
|
ip4: new
|
||||||
|
ip4_addr: vnet0|10.1.0.102/24
|
||||||
|
ip4_saddrsel: '1'
|
||||||
|
ip6: new
|
||||||
|
ip6_addr: none
|
||||||
|
ip6_saddrsel: '1'
|
||||||
|
ip_hostname: '0'
|
||||||
|
jail_zfs: '0'
|
||||||
|
jail_zfs_dataset: iocage/jails/test_102/data
|
||||||
|
jail_zfs_mountpoint: none
|
||||||
|
last_started: none
|
||||||
|
localhost_ip: none
|
||||||
|
login_flags: -f root
|
||||||
|
mac_prefix: 3e4a92
|
||||||
|
maxproc: 'off'
|
||||||
|
memorylocked: 'off'
|
||||||
|
memoryuse: 'off'
|
||||||
|
min_dyn_devfs_ruleset: '1000'
|
||||||
|
mount_devfs: '1'
|
||||||
|
mount_fdescfs: '1'
|
||||||
|
mount_linprocfs: '0'
|
||||||
|
mount_procfs: '0'
|
||||||
|
mountpoint: readonly
|
||||||
|
msgqqueued: 'off'
|
||||||
|
msgqsize: 'off'
|
||||||
|
nat: '0'
|
||||||
|
nat_backend: ipfw
|
||||||
|
nat_forwards: none
|
||||||
|
nat_interface: none
|
||||||
|
nat_prefix: '172.16'
|
||||||
|
nmsgq: 'off'
|
||||||
|
notes: vmm=iocage_01
|
||||||
|
nsem: 'off'
|
||||||
|
nsemop: 'off'
|
||||||
|
nshm: 'off'
|
||||||
|
nthr: 'off'
|
||||||
|
openfiles: 'off'
|
||||||
|
origin: readonly
|
||||||
|
owner: root
|
||||||
|
pcpu: 'off'
|
||||||
|
plugin_name: none
|
||||||
|
plugin_repository: none
|
||||||
|
priority: '99'
|
||||||
|
pseudoterminals: 'off'
|
||||||
|
quota: none
|
||||||
|
readbps: 'off'
|
||||||
|
readiops: 'off'
|
||||||
|
release: 13.4-RELEASE-p2
|
||||||
|
reservation: none
|
||||||
|
resolver: /etc/resolv.conf
|
||||||
|
rlimits: 'off'
|
||||||
|
rtsold: '0'
|
||||||
|
securelevel: '2'
|
||||||
|
shmsize: 'off'
|
||||||
|
stacksize: 'off'
|
||||||
|
state: down
|
||||||
|
stop_timeout: '30'
|
||||||
|
swapuse: 'off'
|
||||||
|
sync_state: none
|
||||||
|
sync_target: none
|
||||||
|
sync_tgt_zpool: none
|
||||||
|
sysvmsg: new
|
||||||
|
sysvsem: new
|
||||||
|
sysvshm: new
|
||||||
|
template: '0'
|
||||||
|
type: jail
|
||||||
|
used: readonly
|
||||||
|
vmemoryuse: 'off'
|
||||||
|
vnet: '1'
|
||||||
|
vnet0_mac: none
|
||||||
|
vnet0_mtu: auto
|
||||||
|
vnet1_mac: none
|
||||||
|
vnet1_mtu: auto
|
||||||
|
vnet2_mac: none
|
||||||
|
vnet2_mtu: auto
|
||||||
|
vnet3_mac: none
|
||||||
|
vnet3_mtu: auto
|
||||||
|
vnet_default_interface: auto
|
||||||
|
vnet_default_mtu: '1500'
|
||||||
|
vnet_interfaces: none
|
||||||
|
wallclock: 'off'
|
||||||
|
writebps: 'off'
|
||||||
|
writeiops: 'off'
|
||||||
|
iocage_release: 13.4-RELEASE-p2
|
||||||
|
iocage_state: down
|
||||||
|
iocage_template: ansible_client
|
||||||
|
iocage_type: jail
|
||||||
|
test_103:
|
||||||
|
iocage_basejail: 'yes'
|
||||||
|
iocage_boot: 'off'
|
||||||
|
iocage_ip4: 10.1.0.103
|
||||||
|
iocage_ip6: '-'
|
||||||
|
iocage_jid: '-'
|
||||||
|
iocage_properties:
|
||||||
|
CONFIG_VERSION: '28'
|
||||||
|
allow_chflags: '0'
|
||||||
|
allow_mlock: '0'
|
||||||
|
allow_mount: '0'
|
||||||
|
allow_mount_devfs: '0'
|
||||||
|
allow_mount_fusefs: '0'
|
||||||
|
allow_mount_nullfs: '0'
|
||||||
|
allow_mount_procfs: '0'
|
||||||
|
allow_mount_tmpfs: '0'
|
||||||
|
allow_mount_zfs: '0'
|
||||||
|
allow_quotas: '0'
|
||||||
|
allow_raw_sockets: '0'
|
||||||
|
allow_set_hostname: '1'
|
||||||
|
allow_socket_af: '0'
|
||||||
|
allow_sysvipc: '0'
|
||||||
|
allow_tun: '0'
|
||||||
|
allow_vmm: '0'
|
||||||
|
assign_localhost: '0'
|
||||||
|
available: readonly
|
||||||
|
basejail: '1'
|
||||||
|
boot: '0'
|
||||||
|
bpf: '0'
|
||||||
|
children_max: '0'
|
||||||
|
comment: none
|
||||||
|
compression: lz4
|
||||||
|
compressratio: readonly
|
||||||
|
coredumpsize: 'off'
|
||||||
|
count: '1'
|
||||||
|
cpuset: 'off'
|
||||||
|
cputime: 'off'
|
||||||
|
datasize: 'off'
|
||||||
|
dedup: 'off'
|
||||||
|
defaultrouter: 10.1.0.10
|
||||||
|
defaultrouter6: auto
|
||||||
|
depends: none
|
||||||
|
devfs_ruleset: '4'
|
||||||
|
dhcp: '0'
|
||||||
|
enforce_statfs: '2'
|
||||||
|
exec_clean: '1'
|
||||||
|
exec_created: /usr/bin/true
|
||||||
|
exec_fib: '0'
|
||||||
|
exec_jail_user: root
|
||||||
|
exec_poststart: /usr/bin/true
|
||||||
|
exec_poststop: /usr/bin/true
|
||||||
|
exec_prestart: /usr/bin/true
|
||||||
|
exec_prestop: /usr/bin/true
|
||||||
|
exec_start: /bin/sh /etc/rc
|
||||||
|
exec_stop: /bin/sh /etc/rc.shutdown
|
||||||
|
exec_system_jail_user: '0'
|
||||||
|
exec_system_user: root
|
||||||
|
exec_timeout: '60'
|
||||||
|
host_domainname: none
|
||||||
|
host_hostname: ansible-client
|
||||||
|
host_hostuuid: test_103
|
||||||
|
host_time: '1'
|
||||||
|
hostid: 34333834-3734-5a43-3331-313342464631
|
||||||
|
hostid_strict_check: '0'
|
||||||
|
interfaces: vnet0:bridge0
|
||||||
|
ip4: new
|
||||||
|
ip4_addr: vnet0|10.1.0.103/24
|
||||||
|
ip4_saddrsel: '1'
|
||||||
|
ip6: new
|
||||||
|
ip6_addr: none
|
||||||
|
ip6_saddrsel: '1'
|
||||||
|
ip_hostname: '0'
|
||||||
|
jail_zfs: '0'
|
||||||
|
jail_zfs_dataset: iocage/jails/test_103/data
|
||||||
|
jail_zfs_mountpoint: none
|
||||||
|
last_started: none
|
||||||
|
localhost_ip: none
|
||||||
|
login_flags: -f root
|
||||||
|
mac_prefix: 3e4a92
|
||||||
|
maxproc: 'off'
|
||||||
|
memorylocked: 'off'
|
||||||
|
memoryuse: 'off'
|
||||||
|
min_dyn_devfs_ruleset: '1000'
|
||||||
|
mount_devfs: '1'
|
||||||
|
mount_fdescfs: '1'
|
||||||
|
mount_linprocfs: '0'
|
||||||
|
mount_procfs: '0'
|
||||||
|
mountpoint: readonly
|
||||||
|
msgqqueued: 'off'
|
||||||
|
msgqsize: 'off'
|
||||||
|
nat: '0'
|
||||||
|
nat_backend: ipfw
|
||||||
|
nat_forwards: none
|
||||||
|
nat_interface: none
|
||||||
|
nat_prefix: '172.16'
|
||||||
|
nmsgq: 'off'
|
||||||
|
notes: vmm=iocage_01
|
||||||
|
nsem: 'off'
|
||||||
|
nsemop: 'off'
|
||||||
|
nshm: 'off'
|
||||||
|
nthr: 'off'
|
||||||
|
openfiles: 'off'
|
||||||
|
origin: readonly
|
||||||
|
owner: root
|
||||||
|
pcpu: 'off'
|
||||||
|
plugin_name: none
|
||||||
|
plugin_repository: none
|
||||||
|
priority: '99'
|
||||||
|
pseudoterminals: 'off'
|
||||||
|
quota: none
|
||||||
|
readbps: 'off'
|
||||||
|
readiops: 'off'
|
||||||
|
release: 13.4-RELEASE-p2
|
||||||
|
reservation: none
|
||||||
|
resolver: /etc/resolv.conf
|
||||||
|
rlimits: 'off'
|
||||||
|
rtsold: '0'
|
||||||
|
securelevel: '2'
|
||||||
|
shmsize: 'off'
|
||||||
|
stacksize: 'off'
|
||||||
|
state: down
|
||||||
|
stop_timeout: '30'
|
||||||
|
swapuse: 'off'
|
||||||
|
sync_state: none
|
||||||
|
sync_target: none
|
||||||
|
sync_tgt_zpool: none
|
||||||
|
sysvmsg: new
|
||||||
|
sysvsem: new
|
||||||
|
sysvshm: new
|
||||||
|
template: '0'
|
||||||
|
type: jail
|
||||||
|
used: readonly
|
||||||
|
vmemoryuse: 'off'
|
||||||
|
vnet: '1'
|
||||||
|
vnet0_mac: none
|
||||||
|
vnet0_mtu: auto
|
||||||
|
vnet1_mac: none
|
||||||
|
vnet1_mtu: auto
|
||||||
|
vnet2_mac: none
|
||||||
|
vnet2_mtu: auto
|
||||||
|
vnet3_mac: none
|
||||||
|
vnet3_mtu: auto
|
||||||
|
vnet_default_interface: auto
|
||||||
|
vnet_default_mtu: '1500'
|
||||||
|
vnet_interfaces: none
|
||||||
|
wallclock: 'off'
|
||||||
|
writebps: 'off'
|
||||||
|
writeiops: 'off'
|
||||||
|
iocage_release: 13.4-RELEASE-p2
|
||||||
|
iocage_state: down
|
||||||
|
iocage_template: ansible_client
|
||||||
|
iocage_type: jail
|
|
@ -0,0 +1,3 @@
|
||||||
|
GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
SPDX-FileCopyrightText: Ansible Project
|
|
@ -0,0 +1,141 @@
|
||||||
|
CONFIG_VERSION:28
|
||||||
|
allow_chflags:0
|
||||||
|
allow_mlock:0
|
||||||
|
allow_mount:0
|
||||||
|
allow_mount_devfs:0
|
||||||
|
allow_mount_fusefs:0
|
||||||
|
allow_mount_nullfs:0
|
||||||
|
allow_mount_procfs:0
|
||||||
|
allow_mount_tmpfs:0
|
||||||
|
allow_mount_zfs:0
|
||||||
|
allow_quotas:0
|
||||||
|
allow_raw_sockets:0
|
||||||
|
allow_set_hostname:1
|
||||||
|
allow_socket_af:0
|
||||||
|
allow_sysvipc:0
|
||||||
|
allow_tun:0
|
||||||
|
allow_vmm:0
|
||||||
|
assign_localhost:0
|
||||||
|
available:readonly
|
||||||
|
basejail:1
|
||||||
|
boot:0
|
||||||
|
bpf:0
|
||||||
|
children_max:0
|
||||||
|
comment:none
|
||||||
|
compression:lz4
|
||||||
|
compressratio:readonly
|
||||||
|
coredumpsize:off
|
||||||
|
count:1
|
||||||
|
cpuset:off
|
||||||
|
cputime:off
|
||||||
|
datasize:off
|
||||||
|
dedup:off
|
||||||
|
defaultrouter:10.1.0.10
|
||||||
|
defaultrouter6:auto
|
||||||
|
depends:none
|
||||||
|
devfs_ruleset:4
|
||||||
|
dhcp:0
|
||||||
|
enforce_statfs:2
|
||||||
|
exec_clean:1
|
||||||
|
exec_created:/usr/bin/true
|
||||||
|
exec_fib:0
|
||||||
|
exec_jail_user:root
|
||||||
|
exec_poststart:/usr/bin/true
|
||||||
|
exec_poststop:/usr/bin/true
|
||||||
|
exec_prestart:/usr/bin/true
|
||||||
|
exec_prestop:/usr/bin/true
|
||||||
|
exec_start:/bin/sh /etc/rc
|
||||||
|
exec_stop:/bin/sh /etc/rc.shutdown
|
||||||
|
exec_system_jail_user:0
|
||||||
|
exec_system_user:root
|
||||||
|
exec_timeout:60
|
||||||
|
host_domainname:none
|
||||||
|
host_hostname:ansible-client
|
||||||
|
host_hostuuid:test_101
|
||||||
|
host_time:1
|
||||||
|
hostid:34333834-3734-5a43-3331-313342464631
|
||||||
|
hostid_strict_check:0
|
||||||
|
interfaces:vnet0:bridge0
|
||||||
|
ip4:new
|
||||||
|
ip4_addr:vnet0|10.1.0.101/24
|
||||||
|
ip4_saddrsel:1
|
||||||
|
ip6:new
|
||||||
|
ip6_addr:none
|
||||||
|
ip6_saddrsel:1
|
||||||
|
ip_hostname:0
|
||||||
|
jail_zfs:0
|
||||||
|
jail_zfs_dataset:iocage/jails/test_101/data
|
||||||
|
jail_zfs_mountpoint:none
|
||||||
|
last_started:none
|
||||||
|
localhost_ip:none
|
||||||
|
login_flags:-f root
|
||||||
|
mac_prefix:3e4a92
|
||||||
|
maxproc:off
|
||||||
|
memorylocked:off
|
||||||
|
memoryuse:off
|
||||||
|
min_dyn_devfs_ruleset:1000
|
||||||
|
mount_devfs:1
|
||||||
|
mount_fdescfs:1
|
||||||
|
mount_linprocfs:0
|
||||||
|
mount_procfs:0
|
||||||
|
mountpoint:readonly
|
||||||
|
msgqqueued:off
|
||||||
|
msgqsize:off
|
||||||
|
nat:0
|
||||||
|
nat_backend:ipfw
|
||||||
|
nat_forwards:none
|
||||||
|
nat_interface:none
|
||||||
|
nat_prefix:172.16
|
||||||
|
nmsgq:off
|
||||||
|
notes:vmm=iocage_01
|
||||||
|
nsem:off
|
||||||
|
nsemop:off
|
||||||
|
nshm:off
|
||||||
|
nthr:off
|
||||||
|
openfiles:off
|
||||||
|
origin:readonly
|
||||||
|
owner:root
|
||||||
|
pcpu:off
|
||||||
|
plugin_name:none
|
||||||
|
plugin_repository:none
|
||||||
|
priority:99
|
||||||
|
pseudoterminals:off
|
||||||
|
quota:none
|
||||||
|
readbps:off
|
||||||
|
readiops:off
|
||||||
|
release:13.4-RELEASE-p2
|
||||||
|
reservation:none
|
||||||
|
resolver:/etc/resolv.conf
|
||||||
|
rlimits:off
|
||||||
|
rtsold:0
|
||||||
|
securelevel:2
|
||||||
|
shmsize:off
|
||||||
|
stacksize:off
|
||||||
|
state:down
|
||||||
|
stop_timeout:30
|
||||||
|
swapuse:off
|
||||||
|
sync_state:none
|
||||||
|
sync_target:none
|
||||||
|
sync_tgt_zpool:none
|
||||||
|
sysvmsg:new
|
||||||
|
sysvsem:new
|
||||||
|
sysvshm:new
|
||||||
|
template:0
|
||||||
|
type:jail
|
||||||
|
used:readonly
|
||||||
|
vmemoryuse:off
|
||||||
|
vnet:1
|
||||||
|
vnet0_mac:none
|
||||||
|
vnet0_mtu:auto
|
||||||
|
vnet1_mac:none
|
||||||
|
vnet1_mtu:auto
|
||||||
|
vnet2_mac:none
|
||||||
|
vnet2_mtu:auto
|
||||||
|
vnet3_mac:none
|
||||||
|
vnet3_mtu:auto
|
||||||
|
vnet_default_interface:auto
|
||||||
|
vnet_default_mtu:1500
|
||||||
|
vnet_interfaces:none
|
||||||
|
wallclock:off
|
||||||
|
writebps:off
|
||||||
|
writeiops:off
|
|
@ -0,0 +1,3 @@
|
||||||
|
GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
SPDX-FileCopyrightText: Ansible Project
|
|
@ -0,0 +1,141 @@
|
||||||
|
CONFIG_VERSION:28
|
||||||
|
allow_chflags:0
|
||||||
|
allow_mlock:0
|
||||||
|
allow_mount:0
|
||||||
|
allow_mount_devfs:0
|
||||||
|
allow_mount_fusefs:0
|
||||||
|
allow_mount_nullfs:0
|
||||||
|
allow_mount_procfs:0
|
||||||
|
allow_mount_tmpfs:0
|
||||||
|
allow_mount_zfs:0
|
||||||
|
allow_quotas:0
|
||||||
|
allow_raw_sockets:0
|
||||||
|
allow_set_hostname:1
|
||||||
|
allow_socket_af:0
|
||||||
|
allow_sysvipc:0
|
||||||
|
allow_tun:0
|
||||||
|
allow_vmm:0
|
||||||
|
assign_localhost:0
|
||||||
|
available:readonly
|
||||||
|
basejail:1
|
||||||
|
boot:0
|
||||||
|
bpf:0
|
||||||
|
children_max:0
|
||||||
|
comment:none
|
||||||
|
compression:lz4
|
||||||
|
compressratio:readonly
|
||||||
|
coredumpsize:off
|
||||||
|
count:1
|
||||||
|
cpuset:off
|
||||||
|
cputime:off
|
||||||
|
datasize:off
|
||||||
|
dedup:off
|
||||||
|
defaultrouter:10.1.0.10
|
||||||
|
defaultrouter6:auto
|
||||||
|
depends:none
|
||||||
|
devfs_ruleset:4
|
||||||
|
dhcp:0
|
||||||
|
enforce_statfs:2
|
||||||
|
exec_clean:1
|
||||||
|
exec_created:/usr/bin/true
|
||||||
|
exec_fib:0
|
||||||
|
exec_jail_user:root
|
||||||
|
exec_poststart:/usr/bin/true
|
||||||
|
exec_poststop:/usr/bin/true
|
||||||
|
exec_prestart:/usr/bin/true
|
||||||
|
exec_prestop:/usr/bin/true
|
||||||
|
exec_start:/bin/sh /etc/rc
|
||||||
|
exec_stop:/bin/sh /etc/rc.shutdown
|
||||||
|
exec_system_jail_user:0
|
||||||
|
exec_system_user:root
|
||||||
|
exec_timeout:60
|
||||||
|
host_domainname:none
|
||||||
|
host_hostname:ansible-client
|
||||||
|
host_hostuuid:test_102
|
||||||
|
host_time:1
|
||||||
|
hostid:34333834-3734-5a43-3331-313342464631
|
||||||
|
hostid_strict_check:0
|
||||||
|
interfaces:vnet0:bridge0
|
||||||
|
ip4:new
|
||||||
|
ip4_addr:vnet0|10.1.0.102/24
|
||||||
|
ip4_saddrsel:1
|
||||||
|
ip6:new
|
||||||
|
ip6_addr:none
|
||||||
|
ip6_saddrsel:1
|
||||||
|
ip_hostname:0
|
||||||
|
jail_zfs:0
|
||||||
|
jail_zfs_dataset:iocage/jails/test_102/data
|
||||||
|
jail_zfs_mountpoint:none
|
||||||
|
last_started:none
|
||||||
|
localhost_ip:none
|
||||||
|
login_flags:-f root
|
||||||
|
mac_prefix:3e4a92
|
||||||
|
maxproc:off
|
||||||
|
memorylocked:off
|
||||||
|
memoryuse:off
|
||||||
|
min_dyn_devfs_ruleset:1000
|
||||||
|
mount_devfs:1
|
||||||
|
mount_fdescfs:1
|
||||||
|
mount_linprocfs:0
|
||||||
|
mount_procfs:0
|
||||||
|
mountpoint:readonly
|
||||||
|
msgqqueued:off
|
||||||
|
msgqsize:off
|
||||||
|
nat:0
|
||||||
|
nat_backend:ipfw
|
||||||
|
nat_forwards:none
|
||||||
|
nat_interface:none
|
||||||
|
nat_prefix:172.16
|
||||||
|
nmsgq:off
|
||||||
|
notes:vmm=iocage_01
|
||||||
|
nsem:off
|
||||||
|
nsemop:off
|
||||||
|
nshm:off
|
||||||
|
nthr:off
|
||||||
|
openfiles:off
|
||||||
|
origin:readonly
|
||||||
|
owner:root
|
||||||
|
pcpu:off
|
||||||
|
plugin_name:none
|
||||||
|
plugin_repository:none
|
||||||
|
priority:99
|
||||||
|
pseudoterminals:off
|
||||||
|
quota:none
|
||||||
|
readbps:off
|
||||||
|
readiops:off
|
||||||
|
release:13.4-RELEASE-p2
|
||||||
|
reservation:none
|
||||||
|
resolver:/etc/resolv.conf
|
||||||
|
rlimits:off
|
||||||
|
rtsold:0
|
||||||
|
securelevel:2
|
||||||
|
shmsize:off
|
||||||
|
stacksize:off
|
||||||
|
state:down
|
||||||
|
stop_timeout:30
|
||||||
|
swapuse:off
|
||||||
|
sync_state:none
|
||||||
|
sync_target:none
|
||||||
|
sync_tgt_zpool:none
|
||||||
|
sysvmsg:new
|
||||||
|
sysvsem:new
|
||||||
|
sysvshm:new
|
||||||
|
template:0
|
||||||
|
type:jail
|
||||||
|
used:readonly
|
||||||
|
vmemoryuse:off
|
||||||
|
vnet:1
|
||||||
|
vnet0_mac:none
|
||||||
|
vnet0_mtu:auto
|
||||||
|
vnet1_mac:none
|
||||||
|
vnet1_mtu:auto
|
||||||
|
vnet2_mac:none
|
||||||
|
vnet2_mtu:auto
|
||||||
|
vnet3_mac:none
|
||||||
|
vnet3_mtu:auto
|
||||||
|
vnet_default_interface:auto
|
||||||
|
vnet_default_mtu:1500
|
||||||
|
vnet_interfaces:none
|
||||||
|
wallclock:off
|
||||||
|
writebps:off
|
||||||
|
writeiops:off
|
|
@ -0,0 +1,3 @@
|
||||||
|
GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
SPDX-FileCopyrightText: Ansible Project
|
|
@ -0,0 +1,141 @@
|
||||||
|
CONFIG_VERSION:28
|
||||||
|
allow_chflags:0
|
||||||
|
allow_mlock:0
|
||||||
|
allow_mount:0
|
||||||
|
allow_mount_devfs:0
|
||||||
|
allow_mount_fusefs:0
|
||||||
|
allow_mount_nullfs:0
|
||||||
|
allow_mount_procfs:0
|
||||||
|
allow_mount_tmpfs:0
|
||||||
|
allow_mount_zfs:0
|
||||||
|
allow_quotas:0
|
||||||
|
allow_raw_sockets:0
|
||||||
|
allow_set_hostname:1
|
||||||
|
allow_socket_af:0
|
||||||
|
allow_sysvipc:0
|
||||||
|
allow_tun:0
|
||||||
|
allow_vmm:0
|
||||||
|
assign_localhost:0
|
||||||
|
available:readonly
|
||||||
|
basejail:1
|
||||||
|
boot:0
|
||||||
|
bpf:0
|
||||||
|
children_max:0
|
||||||
|
comment:none
|
||||||
|
compression:lz4
|
||||||
|
compressratio:readonly
|
||||||
|
coredumpsize:off
|
||||||
|
count:1
|
||||||
|
cpuset:off
|
||||||
|
cputime:off
|
||||||
|
datasize:off
|
||||||
|
dedup:off
|
||||||
|
defaultrouter:10.1.0.10
|
||||||
|
defaultrouter6:auto
|
||||||
|
depends:none
|
||||||
|
devfs_ruleset:4
|
||||||
|
dhcp:0
|
||||||
|
enforce_statfs:2
|
||||||
|
exec_clean:1
|
||||||
|
exec_created:/usr/bin/true
|
||||||
|
exec_fib:0
|
||||||
|
exec_jail_user:root
|
||||||
|
exec_poststart:/usr/bin/true
|
||||||
|
exec_poststop:/usr/bin/true
|
||||||
|
exec_prestart:/usr/bin/true
|
||||||
|
exec_prestop:/usr/bin/true
|
||||||
|
exec_start:/bin/sh /etc/rc
|
||||||
|
exec_stop:/bin/sh /etc/rc.shutdown
|
||||||
|
exec_system_jail_user:0
|
||||||
|
exec_system_user:root
|
||||||
|
exec_timeout:60
|
||||||
|
host_domainname:none
|
||||||
|
host_hostname:ansible-client
|
||||||
|
host_hostuuid:test_103
|
||||||
|
host_time:1
|
||||||
|
hostid:34333834-3734-5a43-3331-313342464631
|
||||||
|
hostid_strict_check:0
|
||||||
|
interfaces:vnet0:bridge0
|
||||||
|
ip4:new
|
||||||
|
ip4_addr:vnet0|10.1.0.103/24
|
||||||
|
ip4_saddrsel:1
|
||||||
|
ip6:new
|
||||||
|
ip6_addr:none
|
||||||
|
ip6_saddrsel:1
|
||||||
|
ip_hostname:0
|
||||||
|
jail_zfs:0
|
||||||
|
jail_zfs_dataset:iocage/jails/test_103/data
|
||||||
|
jail_zfs_mountpoint:none
|
||||||
|
last_started:none
|
||||||
|
localhost_ip:none
|
||||||
|
login_flags:-f root
|
||||||
|
mac_prefix:3e4a92
|
||||||
|
maxproc:off
|
||||||
|
memorylocked:off
|
||||||
|
memoryuse:off
|
||||||
|
min_dyn_devfs_ruleset:1000
|
||||||
|
mount_devfs:1
|
||||||
|
mount_fdescfs:1
|
||||||
|
mount_linprocfs:0
|
||||||
|
mount_procfs:0
|
||||||
|
mountpoint:readonly
|
||||||
|
msgqqueued:off
|
||||||
|
msgqsize:off
|
||||||
|
nat:0
|
||||||
|
nat_backend:ipfw
|
||||||
|
nat_forwards:none
|
||||||
|
nat_interface:none
|
||||||
|
nat_prefix:172.16
|
||||||
|
nmsgq:off
|
||||||
|
notes:vmm=iocage_01
|
||||||
|
nsem:off
|
||||||
|
nsemop:off
|
||||||
|
nshm:off
|
||||||
|
nthr:off
|
||||||
|
openfiles:off
|
||||||
|
origin:readonly
|
||||||
|
owner:root
|
||||||
|
pcpu:off
|
||||||
|
plugin_name:none
|
||||||
|
plugin_repository:none
|
||||||
|
priority:99
|
||||||
|
pseudoterminals:off
|
||||||
|
quota:none
|
||||||
|
readbps:off
|
||||||
|
readiops:off
|
||||||
|
release:13.4-RELEASE-p2
|
||||||
|
reservation:none
|
||||||
|
resolver:/etc/resolv.conf
|
||||||
|
rlimits:off
|
||||||
|
rtsold:0
|
||||||
|
securelevel:2
|
||||||
|
shmsize:off
|
||||||
|
stacksize:off
|
||||||
|
state:down
|
||||||
|
stop_timeout:30
|
||||||
|
swapuse:off
|
||||||
|
sync_state:none
|
||||||
|
sync_target:none
|
||||||
|
sync_tgt_zpool:none
|
||||||
|
sysvmsg:new
|
||||||
|
sysvsem:new
|
||||||
|
sysvshm:new
|
||||||
|
template:0
|
||||||
|
type:jail
|
||||||
|
used:readonly
|
||||||
|
vmemoryuse:off
|
||||||
|
vnet:1
|
||||||
|
vnet0_mac:none
|
||||||
|
vnet0_mtu:auto
|
||||||
|
vnet1_mac:none
|
||||||
|
vnet1_mtu:auto
|
||||||
|
vnet2_mac:none
|
||||||
|
vnet2_mtu:auto
|
||||||
|
vnet3_mac:none
|
||||||
|
vnet3_mtu:auto
|
||||||
|
vnet_default_interface:auto
|
||||||
|
vnet_default_mtu:1500
|
||||||
|
vnet_interfaces:none
|
||||||
|
wallclock:off
|
||||||
|
writebps:off
|
||||||
|
writeiops:off
|
|
@ -0,0 +1,3 @@
|
||||||
|
GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
SPDX-FileCopyrightText: Ansible Project
|
|
@ -0,0 +1,112 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# Copyright (c) 2024 Vladimir Botka <vbotka@gmail.com>
|
||||||
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
from __future__ import (absolute_import, division, print_function)
|
||||||
|
__metaclass__ = type
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
import yaml
|
||||||
|
|
||||||
|
from ansible.inventory.data import InventoryData
|
||||||
|
from ansible.template import Templar
|
||||||
|
from ansible_collections.community.general.plugins.inventory.iocage import InventoryModule
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def inventory():
|
||||||
|
inv = InventoryModule()
|
||||||
|
inv.inventory = InventoryData()
|
||||||
|
inv.templar = Templar(None)
|
||||||
|
inv.jails = load_txt_data('tests/unit/plugins/inventory/fixtures/iocage_jails.txt')
|
||||||
|
inv.js_ok = load_yml_data('tests/unit/plugins/inventory/fixtures/iocage_jails.yml')
|
||||||
|
prpts_101 = load_txt_data('tests/unit/plugins/inventory/fixtures/iocage_properties_test_101.txt')
|
||||||
|
prpts_102 = load_txt_data('tests/unit/plugins/inventory/fixtures/iocage_properties_test_102.txt')
|
||||||
|
prpts_103 = load_txt_data('tests/unit/plugins/inventory/fixtures/iocage_properties_test_103.txt')
|
||||||
|
inv.prpts = {'test_101': prpts_101, 'test_102': prpts_102, 'test_103': prpts_103}
|
||||||
|
inv.ps_ok = load_yml_data('tests/unit/plugins/inventory/fixtures/iocage_properties.yml')
|
||||||
|
inv.ok = load_yml_data('tests/unit/plugins/inventory/fixtures/iocage_inventory.yml')
|
||||||
|
return inv
|
||||||
|
|
||||||
|
|
||||||
|
def load_txt_data(path):
|
||||||
|
f = open(path, 'r')
|
||||||
|
s = f.read()
|
||||||
|
f.close()
|
||||||
|
return s
|
||||||
|
|
||||||
|
|
||||||
|
def load_yml_data(path):
|
||||||
|
f = open(path, 'r')
|
||||||
|
d = yaml.safe_load(f)
|
||||||
|
f.close()
|
||||||
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
def get_option(option):
|
||||||
|
groups = {}
|
||||||
|
groups['test'] = "inventory_hostname.startswith('test')"
|
||||||
|
|
||||||
|
if option == 'groups':
|
||||||
|
return groups
|
||||||
|
elif option == 'keyed_groups':
|
||||||
|
return []
|
||||||
|
elif option == 'compose':
|
||||||
|
return {}
|
||||||
|
elif option == 'strict':
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def test_verify_file_bad_config(inventory):
|
||||||
|
assert inventory.verify_file('foobar.iocage.yml') is False
|
||||||
|
|
||||||
|
|
||||||
|
def test_verify_file(tmp_path, inventory):
|
||||||
|
file = tmp_path / "foobar.iocage.yml"
|
||||||
|
file.touch()
|
||||||
|
assert inventory.verify_file(str(file))
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_jails(inventory):
|
||||||
|
results = {'_meta': {'hostvars': {}}}
|
||||||
|
inventory.get_jails(inventory.jails, results)
|
||||||
|
assert results == inventory.js_ok
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_properties(inventory):
|
||||||
|
results = {'_meta': {'hostvars': {}}}
|
||||||
|
inventory.get_jails(inventory.jails, results)
|
||||||
|
for hostname, host_vars in results['_meta']['hostvars'].items():
|
||||||
|
inventory.get_properties(inventory.prpts[hostname], results, hostname)
|
||||||
|
assert results == inventory.ps_ok
|
||||||
|
|
||||||
|
|
||||||
|
def test_populate(inventory, mocker):
|
||||||
|
results = {'_meta': {'hostvars': {}}}
|
||||||
|
inventory.get_jails(inventory.jails, results)
|
||||||
|
for hostname, host_vars in results['_meta']['hostvars'].items():
|
||||||
|
inventory.get_properties(inventory.prpts[hostname], results, hostname)
|
||||||
|
inventory.get_option = mocker.MagicMock(side_effect=get_option)
|
||||||
|
inventory.populate(results)
|
||||||
|
|
||||||
|
# test
|
||||||
|
hosts = ('test_101', 'test_102', 'test_103')
|
||||||
|
vars = ('iocage_basejail', 'iocage_boot', 'iocage_ip4', 'iocage_ip6', 'iocage_properties',
|
||||||
|
'iocage_release', 'iocage_state', 'iocage_template', 'iocage_type')
|
||||||
|
|
||||||
|
# test host_vars
|
||||||
|
for host in hosts:
|
||||||
|
h = inventory.inventory.get_host(host)
|
||||||
|
for var in vars:
|
||||||
|
assert inventory.ok['all']['children']['test']['hosts'][host][var] == h.get_vars()[var]
|
||||||
|
|
||||||
|
# test groups
|
||||||
|
test_101_info = inventory.inventory.get_host('test_101')
|
||||||
|
test_102_info = inventory.inventory.get_host('test_102')
|
||||||
|
test_103_info = inventory.inventory.get_host('test_103')
|
||||||
|
g = inventory.inventory.groups['test']
|
||||||
|
assert g.hosts == [test_101_info, test_102_info, test_103_info]
|
Loading…
Reference in New Issue