From 6d8da4277681d8e0046c9d1b92d7c9a13df67bc0 Mon Sep 17 00:00:00 2001 From: Sharad Ahlawat Date: Sat, 17 Apr 2021 11:05:38 -0700 Subject: [PATCH] . --- configs/pxe/fstab.11 | 2 +- configs/pxe/fstab.12 | 2 +- configs/pxe/fstab.12p | 2 +- configs/pxe/fstab.13 | 2 +- configs/pxe/fstab.13p | 2 +- configs/pxe/iscsi.conf.11 | 2 +- configs/pxe/iscsi.conf.12 | 2 +- configs/pxe/iscsi.conf.12p | 2 +- configs/pxe/iscsi.conf.13 | 2 +- configs/pxe/iscsi.conf.13p | 2 +- configs/pxe/resolv.conf | 2 +- iocage/Makefile | 27 + iocage/iocage_lib/ioc_fetch.py | 1021 ++++++++++++ iocage/iocage_lib/ioc_upgrade.py | 410 +++++ iocage/iocage_lib/iocage.py | 2177 +++++++++++++++++++++++++ jails/config/common/current-src.bzip2 | Bin 0 -> 285505 bytes jails/config/vm/cvm-b.sh | 2 +- jails/config/vm/freebsd.sh | 20 +- jails/update.sh | 20 +- scripts/fan.py | 14 + 20 files changed, 3690 insertions(+), 23 deletions(-) create mode 100644 iocage/Makefile create mode 100644 iocage/iocage_lib/ioc_fetch.py create mode 100644 iocage/iocage_lib/ioc_upgrade.py create mode 100644 iocage/iocage_lib/iocage.py create mode 100644 jails/config/common/current-src.bzip2 create mode 100644 scripts/fan.py diff --git a/configs/pxe/fstab.11 b/configs/pxe/fstab.11 index e51246c..fba995d 100644 --- a/configs/pxe/fstab.11 +++ b/configs/pxe/fstab.11 @@ -1,3 +1,3 @@ # Device Mountpoint FStype Options Dump Pass# -192.168.0.10:/mnt/ship/pxe/FreeBSD11 / nfs rw 0 0 +192.168.10.10:/mnt/ship/pxe/FreeBSD11 / nfs rw 0 0 fdescfs /dev/fd fdescfs rw 0 0 diff --git a/configs/pxe/fstab.12 b/configs/pxe/fstab.12 index b9cdc6b..7f76caf 100644 --- a/configs/pxe/fstab.12 +++ b/configs/pxe/fstab.12 @@ -1,3 +1,3 @@ # Device Mountpoint FStype Options Dump Pass# -192.168.0.10:/mnt/ship/pxe/FreeBSD12 / nfs rw 0 0 +192.168.10.10:/mnt/ship/pxe/FreeBSD12 / nfs rw 0 0 fdescfs /dev/fd fdescfs rw 0 0 diff --git a/configs/pxe/fstab.12p b/configs/pxe/fstab.12p index 11c44dd..a2c3e0e 100644 --- a/configs/pxe/fstab.12p +++ b/configs/pxe/fstab.12p @@ -1,3 +1,3 @@ # Device Mountpoint FStype Options Dump Pass# -192.168.0.10:/mnt/ship/pxe/FreeBSD12p / nfs rw 0 0 +192.168.10.10:/mnt/ship/pxe/FreeBSD12p / nfs rw 0 0 fdescfs /dev/fd fdescfs rw 0 0 diff --git a/configs/pxe/fstab.13 b/configs/pxe/fstab.13 index 6ffff01..aa89fde 100644 --- a/configs/pxe/fstab.13 +++ b/configs/pxe/fstab.13 @@ -1,3 +1,3 @@ # Device Mountpoint FStype Options Dump Pass# -192.168.0.10:/mnt/ship/pxe/FreeBSD13 / nfs rw 0 0 +192.168.10.10:/mnt/ship/pxe/FreeBSD13 / nfs rw 0 0 fdescfs /dev/fd fdescfs rw 0 0 diff --git a/configs/pxe/fstab.13p b/configs/pxe/fstab.13p index 41fef92..780a4e6 100644 --- a/configs/pxe/fstab.13p +++ b/configs/pxe/fstab.13p @@ -1,3 +1,3 @@ # Device Mountpoint FStype Options Dump Pass# -192.168.0.10:/mnt/ship/pxe/FreeBSD13p / nfs rw 0 0 +192.168.10.10:/mnt/ship/pxe/FreeBSD13p / nfs rw 0 0 fdescfs /dev/fd fdescfs rw 0 0 diff --git a/configs/pxe/iscsi.conf.11 b/configs/pxe/iscsi.conf.11 index a2b9102..fc3b65c 100644 --- a/configs/pxe/iscsi.conf.11 +++ b/configs/pxe/iscsi.conf.11 @@ -1,5 +1,5 @@ t0 { - TargetAddress = 192.168.0.10 + TargetAddress = 192.168.10.10 TargetName = iqn.nas.ahlawat.com:f11 AuthMethod = CHAP chapIName = user diff --git a/configs/pxe/iscsi.conf.12 b/configs/pxe/iscsi.conf.12 index 1afdda5..56bca89 100644 --- a/configs/pxe/iscsi.conf.12 +++ b/configs/pxe/iscsi.conf.12 @@ -1,5 +1,5 @@ t0 { - TargetAddress = 192.168.0.10 + TargetAddress = 192.168.10.10 TargetName = iqn.nas.ahlawat.com:f12 AuthMethod = CHAP chapIName = user diff --git a/configs/pxe/iscsi.conf.12p b/configs/pxe/iscsi.conf.12p index 2e666d1..3c10213 100644 --- a/configs/pxe/iscsi.conf.12p +++ b/configs/pxe/iscsi.conf.12p @@ -1,5 +1,5 @@ t0 { - TargetAddress = 192.168.0.10 + TargetAddress = 192.168.10.10 TargetName = iqn.nas.ahlawat.com:f12p AuthMethod = CHAP chapIName = user diff --git a/configs/pxe/iscsi.conf.13 b/configs/pxe/iscsi.conf.13 index f4daee9..0ba4dc5 100644 --- a/configs/pxe/iscsi.conf.13 +++ b/configs/pxe/iscsi.conf.13 @@ -1,5 +1,5 @@ t0 { - TargetAddress = 192.168.0.10 + TargetAddress = 192.168.10.10 TargetName = iqn.nas.ahlawat.com:f13 AuthMethod = CHAP chapIName = user diff --git a/configs/pxe/iscsi.conf.13p b/configs/pxe/iscsi.conf.13p index f39b03f..bb7e42f 100644 --- a/configs/pxe/iscsi.conf.13p +++ b/configs/pxe/iscsi.conf.13p @@ -1,5 +1,5 @@ t0 { - TargetAddress = 192.168.0.10 + TargetAddress = 192.168.10.10 TargetName = iqn.nas.ahlawat.com:f13p AuthMethod = CHAP chapIName = user diff --git a/configs/pxe/resolv.conf b/configs/pxe/resolv.conf index 2bc218d..d90441c 100644 --- a/configs/pxe/resolv.conf +++ b/configs/pxe/resolv.conf @@ -1,6 +1,6 @@ # Generated by resolvconf search diyit.org -nameserver 192.168.0.5 +nameserver 192.168.10.5 nameserver fd01::5 nameserver fd02::5 nameserver fd05::5 diff --git a/iocage/Makefile b/iocage/Makefile new file mode 100644 index 0000000..0dc9d94 --- /dev/null +++ b/iocage/Makefile @@ -0,0 +1,27 @@ +ZPOOL="" +SERVER="" +PYTHON?=/usr/local/bin/python3.7 +# pkg install python37 git-lite +# pip19 required for iocage files install + +depends: + @(pkg -vv | grep -e "url.*/latest") > /dev/null 2>&1 || (echo "It is advised pkg url is using \"latest\" instead of \"quarterly\" in /etc/pkg/FreeBSD.conf.";) + @test -s ${PYTHON} || (echo "Python binary ${PYTHON} not found, iocage will install python37"; pkg install -q -y python37) + pkg install -q -y py37-cython py37-pip py37-libzfs py37-six + ${PYTHON} -m pip install pip==19.3.1 + ${PYTHON} -m ensurepip + ${PYTHON} -m pip install -Ur requirements.txt + +install: depends + ${PYTHON} -m pip install -U . +uninstall: + ${PYTHON} -m pip uninstall -y iocage-lib iocage-cli +test: + pytest --zpool $(ZPOOL) --server $(SERVER) +help: + @echo " install" + @echo " Installs iocage" + @echo " uninstall" + @echo " Removes iocage" + @echo " test" + @echo " Run unit tests with pytest" diff --git a/iocage/iocage_lib/ioc_fetch.py b/iocage/iocage_lib/ioc_fetch.py new file mode 100644 index 0000000..e05a763 --- /dev/null +++ b/iocage/iocage_lib/ioc_fetch.py @@ -0,0 +1,1021 @@ +# Copyright (c) 2014-2019, iocage +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted providing that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +"""iocage fetch module.""" +import hashlib +import logging +import os +import shutil +import subprocess as su +import tarfile +import tempfile +import time +import urllib.request + +import requests +import requests.auth +import requests.packages.urllib3.exceptions + +import iocage_lib.ioc_common +import iocage_lib.ioc_destroy +import iocage_lib.ioc_exceptions +import iocage_lib.ioc_exec +import iocage_lib.ioc_json +import iocage_lib.ioc_start + + +from iocage_lib.pools import Pool +from iocage_lib.dataset import Dataset + + +class IOCFetch: + + """Fetch a RELEASE for use as a jail base.""" + + def __init__(self, + release, + server="download.freebsd.org", + user="anonymous", + password="anonymous@", + auth=None, + root_dir=None, + http=True, + _file=False, + verify=True, + hardened=False, + update=True, + eol=True, + files=('MANIFEST', 'base.txz', 'lib32.txz'), + silent=False, + callback=None): + self.pool = iocage_lib.ioc_json.IOCJson().json_get_value("pool") + self.iocroot = iocage_lib.ioc_json.IOCJson( + self.pool).json_get_value("iocroot") + self.server = server + self.user = user + self.password = password + self.auth = auth + + if release and (not _file and server == 'download.freebsd.org'): + self.release = release.upper() + else: + self.release = release + + self.root_dir = root_dir + self.arch = os.uname()[4] + self.http = http + self._file = _file + self.verify = verify + self.hardened = hardened + self.files = files + self.files_left = list(files) + self.update = update + self.eol = eol + self.silent = silent + self.callback = callback + self.zpool = Pool(self.pool) + + if hardened: + if release: + self.release = f"{self.release[:2]}-stable".upper() + else: + self.release = release + + if not verify: + # The user likely knows this already. + requests.packages.urllib3.disable_warnings( + requests.packages.urllib3.exceptions.InsecureRequestWarning) + + @staticmethod + def __fetch_eol_check__(): + """Scrapes the FreeBSD website and returns a list of EOL RELEASES""" + logging.getLogger("requests").setLevel(logging.WARNING) + _eol = "https://www.freebsd.org/security/unsupported.html" + req = requests.get(_eol) + status = req.status_code == requests.codes.ok + eol_releases = [] + + if not status: + req.raise_for_status() + + for eol in req.content.decode("iso-8859-1").split(): + eol = eol.strip("href=").strip("/").split(">") + # We want a dynamic EOL + try: + if "-RELEASE" in eol[1]: + eol = eol[1].strip(' 2: + # Quick list validation + try: + releases.index(self.release) + except ValueError: + # Time to print the list again + self.release = self.__fetch_validate_release__(releases) + else: + return self.release + + try: + self.release = releases[int(self.release)] + iocage_lib.ioc_common.check_release_newer( + self.release, self.callback, self.silent, major_only=True) + except IndexError: + # Time to print the list again + self.release = self.__fetch_validate_release__(releases) + except ValueError: + # We want to use their host as RELEASE, but it may + # not be on the mirrors anymore. + try: + if self.release == "": + self.release = iocage_lib.ioc_common.get_host_release() + + if "-STABLE" in self.release: + # Custom HardenedBSD server + self.hardened = True + + return self.release + + releases.index(self.release) + except ValueError: + # Time to print the list again + self.release = self.__fetch_validate_release__(releases) + + return self.release + + def fetch_release(self, _list=False): + """Small wrapper to choose the right fetch.""" + + if self.http and not self._file: + if self.eol and self.verify: + eol = self.__fetch_eol_check__() + else: + eol = [] + + if self.release: + iocage_lib.ioc_common.check_release_newer( + self.release, callback=self.callback, silent=self.silent, + major_only=True, + ) + rel = self.fetch_http_release(eol, _list=_list) + + if _list: + return rel + elif self._file: + # Format for file directory should be: root-dir/RELEASE/*.txz + + if not self.root_dir: + iocage_lib.ioc_common.logit( + { + "level": "EXCEPTION", + "message": "Please supply --root-dir or -d." + }, + _callback=self.callback, + silent=self.silent) + + if self.release is None: + iocage_lib.ioc_common.logit( + { + "level": "EXCEPTION", + "message": "Please supply a RELEASE!" + }, + _callback=self.callback, + silent=self.silent) + + dataset = f"{self.iocroot}/download/{self.release}" + pool_dataset = f"{self.pool}/iocage/download/{self.release}" + + if os.path.isdir(dataset): + pass + else: + self.zpool.create_dataset({ + 'name': pool_dataset, 'properties': {'compression': 'lz4'} + }) + + for f in self.files: + file_path = os.path.join(self.root_dir, self.release, f) + if not os.path.isfile(file_path): + + ds = Dataset(pool_dataset) + ds.destroy(recursive=True, force=True) + + if f == "MANIFEST": + error = f"{f} is a required file!" \ + f"\nPlease place it in {self.root_dir}/" \ + f"{self.release}" + else: + error = f"{f}.txz is a required file!" \ + f"\nPlease place it in {self.root_dir}/" \ + f"{self.release}" + + iocage_lib.ioc_common.logit( + { + "level": "EXCEPTION", + "message": error + }, + _callback=self.callback, + silent=self.silent) + + iocage_lib.ioc_common.logit( + { + "level": "INFO", + "message": f"Copying: {f}... " + }, + _callback=self.callback, + silent=self.silent) + shutil.copy(file_path, dataset) + + if f != "MANIFEST": + iocage_lib.ioc_common.logit( + { + "level": "INFO", + "message": f"Extracting: {f}... " + }, + _callback=self.callback, + silent=self.silent) + self.fetch_extract(f) + + def fetch_http_release(self, eol, _list=False): + """ + Fetch a user specified RELEASE from FreeBSD's http server or a user + supplied one. The user can also specify the user, password and + root-directory containing the release tree that looks like so: + - XX.X-RELEASE + - XX.X-RELEASE + - XX.X-RELEASE + """ + + if self.hardened: + if self.server == "download.freebsd.org": + self.server = "http://jenkins.hardenedbsd.org" + rdir = "builds" + + if self.root_dir is None: + self.root_dir = f"ftp/releases/{self.arch}" + + if self.auth and "https" not in self.server: + self.server = "https://" + self.server + elif "http" not in self.server: + self.server = "http://" + self.server + + logging.getLogger("requests").setLevel(logging.WARNING) + + if self.hardened: + if self.auth == "basic": + req = requests.get( + f"{self.server}/{rdir}", + auth=(self.user, self.password), + verify=self.verify) + elif self.auth == "digest": + req = requests.get( + f"{self.server}/{rdir}", + auth=requests.auth.HTTPDigestAuth(self.user, + self.password), + verify=self.verify) + else: + req = requests.get(f"{self.server}/{rdir}") + + releases = [] + status = req.status_code == requests.codes.ok + + if not status: + req.raise_for_status() + + if not self.release: + for rel in req.content.split(): + rel = rel.decode() + rel = rel.strip("href=").strip("/").split(">") + + if "-STABLE" in rel[0]: + rel = rel[0].strip('"').strip("/").strip( + "HardenedBSD-").rsplit("-") + rel = f"{rel[0]}-{rel[1]}" + + if rel not in releases: + releases.append(rel) + + if len(releases) == 0: + iocage_lib.ioc_common.logit( + { + "level": + "EXCEPTION", + "message": + f"""\ + No RELEASEs were found at {self.server}/{self.root_dir}! + Please ensure the server is correct and the root-dir is + pointing to a top-level directory with the format: + - XX.X-RELEASE + - XX.X-RELEASE + - XX.X-RELEASE + """ + }, + _callback=self.callback, + silent=self.silent) + + releases = iocage_lib.ioc_common.sort_release( + releases, fetch_releases=True) + + self.release = self.__fetch_validate_release__(releases) + else: + if self.auth == "basic": + req = requests.get( + f"{self.server}/{self.root_dir}", + auth=(self.user, self.password), + verify=self.verify) + elif self.auth == "digest": + req = requests.get( + f"{self.server}/{self.root_dir}", + auth=requests.auth.HTTPDigestAuth(self.user, + self.password), + verify=self.verify) + else: + req = requests.get(f"{self.server}/{self.root_dir}") + + releases = [] + status = req.status_code == requests.codes.ok + + if not status: + req.raise_for_status() + + if not self.release: + for rel in req.content.split(): + rel = rel.decode() + rel = rel.strip("href=").strip("/").split(">") + + if "-RELEASE" in rel[0]: + rel = rel[0].strip('"').strip("/").strip("/ 0: + sha256.update(buf) + buf = txz.read(hash_block) + + if hashes[f] != sha256.hexdigest(): + if not _missing: + iocage_lib.ioc_common.logit( + { + "level": + "WARNING", + "message": + f"{f} failed verification," + " will redownload!" + }, + _callback=self.callback, + silent=self.silent) + missing.append(f) + except FileNotFoundError: + if not _missing: + iocage_lib.ioc_common.logit( + { + "level": + "WARNING", + "message": + f"{f} missing, will try to redownload!" + }, + _callback=self.callback, + silent=self.silent) + missing.append(f) + else: + iocage_lib.ioc_common.logit( + { + "level": "EXCEPTION", + "message": "Too many failed verifications!" + }, + _callback=self.callback, + silent=self.silent) + except KeyError: + iocage_lib.ioc_common.logit( + { + 'level': 'WARNING', + 'message': f'{f} missing from MANIFEST,' + ' refusing to extract!' + }, + _callback=self.callback, + silent=self.silent) + if f == 'doc.txz': + # some releases might not have it, + # it is safe to skip + self.files_left.remove(f) + continue + + if not missing and f in _list: + iocage_lib.ioc_common.logit( + { + "level": "INFO", + "message": f"Extracting: {f}... " + }, + _callback=self.callback, + silent=self.silent) + + try: + self.fetch_extract(f) + except Exception: + raise + + if f in self.files_left: + self.files_left.remove(f) + + return missing + + def fetch_download(self, _list, missing=False): + """Creates the download dataset and then downloads the RELEASE.""" + dataset = f"{self.iocroot}/download/{self.release}" + fresh = False + + if not os.path.isdir(dataset): + fresh = True + dataset = f"{self.pool}/iocage/download/{self.release}" + + ds = Dataset(dataset) + if not ds.exists: + ds.create({'properties': {'compression': 'lz4'}}) + if not ds.mounted: + ds.mount() + + if missing or fresh: + release_download_path = os.path.join( + self.iocroot, 'download', self.release + ) + + for f in _list: + if self.hardened: + _file = f"{self.server}/{self.root_dir}/{f}" + + if f == "lib32.txz": + continue + else: + _file = f"{self.server}/{self.root_dir}/" \ + f"{self.release}/{f}" + + if self.auth == "basic": + r = requests.get( + _file, + auth=(self.user, self.password), + verify=self.verify, + stream=True) + elif self.auth == "digest": + r = requests.get( + _file, + auth=requests.auth.HTTPDigestAuth( + self.user, self.password), + verify=self.verify, + stream=True) + else: + r = requests.get( + _file, verify=self.verify, stream=True) + + status = r.status_code == requests.codes.ok + + if not status: + r.raise_for_status() + + with open(os.path.join(release_download_path, f), 'wb') as txz: + file_size = int(r.headers['Content-Length']) + chunk_size = 1024 * 1024 + total = file_size / chunk_size + start = time.time() + dl_progress = 0 + last_progress = 0 + + for i, chunk in enumerate( + r.iter_content(chunk_size=chunk_size), 1 + ): + if chunk: + elapsed = time.time() - start + dl_progress += len(chunk) + txz.write(chunk) + + progress = float(i) / float(total) + if progress >= 1.: + progress = 1 + progress = round(progress * 100, 0) + + if progress != last_progress: + text = self.update_progress( + progress, + f'Downloading: {f}', + elapsed, + chunk_size + ) + + if progress % 10 == 0: + # Not for user output, but for callback + # heartbeats + iocage_lib.ioc_common.logit( + { + 'level': 'INFO', + 'message': text.rstrip() + }, + _callback=self.callback, + silent=True) + + last_progress = progress + start = time.time() + + def update_progress(self, progress, display_text, elapsed, chunk_size): + """ + Displays or updates a console progress bar. + Original source: https://stackoverflow.com/a/15860757/1391441 + """ + barLength, status = 20, "" + + current_time = chunk_size / elapsed + current_time = round(current_time / 1000000, 1) + + block = int(round(barLength * (progress / 100))) + + if progress == 100: + status = "\r\n" + + if self.silent: + return + + text = "\r{} [{}] {:.0f}% {} {}MB/s".format( + display_text, + "#" * block + "-" * (barLength - block), + progress, status, current_time) + + erase = '\x1b[2K' + + print(erase, text, end="\r") + + return text + + def __fetch_check_members__(self, members): + """Checks if the members are relative, if not, log a warning.""" + _members = [] + + for m in members: + if m.name == ".": + continue + + if ".." in m.name: + iocage_lib.ioc_common.logit( + { + "level": "WARNING", + "message": + f"{m.name} is not a relative file, skipping " + }, + _callback=self.callback, + silent=self.silent) + + continue + + _members.append(m) + + return _members + + def fetch_extract(self, f): + """ + Takes a src and dest then creates the RELEASE dataset for the data. + """ + src = f"{self.iocroot}/download/{self.release}/{f}" + dest = f"{self.iocroot}/releases/{self.release}/root" + + dataset = f"{self.pool}/iocage/releases/{self.release}/root" + + if not os.path.isdir(dest): + self.zpool.create_dataset({ + 'name': dataset, 'create_ancestors': True, + 'properties': {'compression': 'lz4'}, + }) + + with tarfile.open(src) as f: + # Extracting over the same files is much slower then + # removing them first. + member = self.__fetch_extract_remove__(f) + member = self.__fetch_check_members__(member) + f.extractall(dest, members=member) + + def fetch_update(self, cli=False, uuid=None): + """This calls 'freebsd-update' to update the fetched RELEASE.""" + iocage_lib.ioc_common.tmp_dataset_checks(self.callback, self.silent) + + if cli: + cmd = [ + "mount", "-t", "devfs", "devfs", + f"{self.iocroot}/jails/{uuid}/root/dev" + ] + mount = f'{self.iocroot}/jails/{uuid}' + mount_root = f'{mount}/root' + + iocage_lib.ioc_common.logit( + { + "level": + "INFO", + "message": + f"\n* Updating {uuid} to the latest patch" + " level... " + }, + _callback=self.callback, + silent=self.silent) + else: + cmd = [ + "mount", "-t", "devfs", "devfs", + f"{self.iocroot}/releases/{self.release}/root/dev" + ] + mount = f'{self.iocroot}/releases/{self.release}' + mount_root = f'{mount}/root' + + iocage_lib.ioc_common.logit( + { + "level": + "INFO", + "message": + f"\n* Updating {self.release} to the latest patch" + " level... " + }, + _callback=self.callback, + silent=self.silent) + + shutil.copy("/etc/resolv.conf", f"{mount_root}/etc/resolv.conf") + + path = '/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:'\ + '/usr/local/bin:/root/bin' + fetch_env = { + 'UNAME_r': self.release, + 'PAGER': '/bin/cat', + 'PATH': path, + 'PWD': '/', + 'HOME': '/', + 'TERM': 'xterm-256color' + } + + update_path = f'{mount_root}/etc/freebsd-update.conf' + exception_msg = None + if not os.path.exists(update_path) or not os.path.isfile(update_path): + exception_msg = f'{update_path} not found or is not a file.' + else: + with open(update_path, 'r') as f: + contents = f.read() + if 'ServerName' not in contents: + exception_msg = f'ServerName not configured in {update_path}' + + if exception_msg: + iocage_lib.ioc_common.logit( + {'level': 'EXCEPTION', 'message': f'Failed to update: {exception_msg}'} + ) + + su.Popen(cmd).communicate() + if self.verify: + f = "https://raw.githubusercontent.com/freebsd/freebsd-src" \ + "/master/usr.sbin/freebsd-update/freebsd-update.sh" + + tmp = tempfile.NamedTemporaryFile(delete=False) + with urllib.request.urlopen(f) as fbsd_update: + tmp.write(fbsd_update.read()) + tmp.close() + os.chmod(tmp.name, 0o755) + fetch_name = tmp.name + else: + fetch_name = f"{mount_root}/usr/sbin/freebsd-update" + + fetch_cmd = [ + fetch_name, "-b", mount_root, "-d", + f"{mount_root}/var/db/freebsd-update/", "-f", + f"{mount_root}/etc/freebsd-update.conf", + "--not-running-from-cron", "fetch" + ] + with iocage_lib.ioc_exec.IOCExec( + fetch_cmd, + f"{self.iocroot}/jails/{uuid}", + uuid=uuid, + unjailed=True, + callback=self.callback, + su_env=fetch_env + ) as _exec: + try: + iocage_lib.ioc_common.consume_and_log( + _exec, callback=self.callback) + except iocage_lib.ioc_exceptions.CommandFailed as e: + su.Popen(['umount', f'{mount_root}/dev']).communicate() + iocage_lib.ioc_common.logit( + { + 'level': 'EXCEPTION', + 'message': b''.join(e.message) + }, + _callback=self.callback, + silent=self.silent + ) + + try: + fetch_install_cmd = [ + fetch_name, "-b", mount_root, "-d", + f"{mount_root}/var/db/freebsd-update/", "-f", + f"{mount_root}/etc/freebsd-update.conf", "install" + ] + with iocage_lib.ioc_exec.IOCExec( + fetch_install_cmd, + f"{self.iocroot}/jails/{uuid}", + uuid=uuid, + unjailed=True, + callback=self.callback, + su_env=fetch_env + ) as _exec: + try: + iocage_lib.ioc_common.consume_and_log( + _exec, callback=self.callback) + except iocage_lib.ioc_exceptions.CommandFailed as e: + iocage_lib.ioc_common.logit( + { + 'level': 'EXCEPTION', + 'message': b''.join(e.message) + }, + _callback=self.callback, + silent=self.silent + ) + + finally: + su.Popen(['umount', f'{mount_root}/dev']).communicate() + new_release = iocage_lib.ioc_common.get_jail_freebsd_version( + mount_root, self.release + ) + + if self.release != new_release: + jails = iocage_lib.ioc_list.IOCList( + 'uuid', hdr=False).list_datasets() + + if not cli: + for jail, path in jails.items(): + _json = iocage_lib.ioc_json.IOCJson( + path, cli=False + ) + props = _json.json_get_value('all') + + if props['basejail'] and self.release.rsplit( + '-', 1 + )[0] in props['release']: + _json.json_set_value(f'release={new_release}') + else: + _json = iocage_lib.ioc_json.IOCJson( + jails[uuid], cli=False + ) + _json.json_set_value(f'release={new_release}') + + if self.verify: + # tmp only exists if they verify SSL certs + + if not tmp.closed: + tmp.close() + + os.remove(tmp.name) + + try: + if not cli: + # Why this sometimes doesn't exist, we may never know. + os.remove(f"{mount_root}/etc/resolv.conf") + except OSError: + pass + + def __fetch_extract_remove__(self, tar): + """ + Tries to remove any file that exists from the archive as overwriting + is very slow in tar. + """ + members = [] + + for f in tar.getmembers(): + rel_path = f"{self.iocroot}/releases/{self.release}/root/" \ + f"{f.name}" + try: + # . and so forth won't like this. + os.remove(rel_path) + except (IOError, OSError): + pass + + members.append(f) + + return members diff --git a/iocage/iocage_lib/ioc_upgrade.py b/iocage/iocage_lib/ioc_upgrade.py new file mode 100644 index 0000000..e1187d2 --- /dev/null +++ b/iocage/iocage_lib/ioc_upgrade.py @@ -0,0 +1,410 @@ +# Copyright (c) 2014-2019, iocage +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted providing that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +"""iocage upgrade module""" +import datetime +import fileinput +import hashlib +import os +import pathlib +import subprocess as su +import tempfile +import urllib.request + +import iocage_lib.ioc_common +import iocage_lib.ioc_json +import iocage_lib.ioc_list + + +class IOCUpgrade: + + """Will upgrade a jail to the specified RELEASE.""" + + def __init__(self, + new_release, + path, + interactive=True, + silent=False, + callback=None, + ): + super().__init__() + self.pool = iocage_lib.ioc_json.IOCJson().json_get_value("pool") + self.iocroot = iocage_lib.ioc_json.IOCJson( + self.pool).json_get_value("iocroot") + self.freebsd_version = iocage_lib.ioc_common.checkoutput( + ["freebsd-version"]) + self.conf = iocage_lib.ioc_json.IOCJson(path.rsplit( + '/root', 1)[0]).json_get_value('all') + self.uuid = self.conf["host_hostuuid"] + self.host_release = os.uname()[2] + _release = self.conf["release"].rsplit("-", 1)[0] + self.jail_release = _release if "-RELEASE" in _release else \ + self.conf["release"] + self.new_release = new_release + self.path = path + self.status, self.jid = iocage_lib.ioc_list.IOCList.list_get_jid( + self.uuid) + self._freebsd_version = f"{self.iocroot}/jails/" \ + f"{self.uuid}/root/bin/freebsd-version" + self.date = datetime.datetime.utcnow().strftime("%F") + self.interactive = interactive + self.silent = silent + + path = '/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:'\ + '/usr/local/bin:/root/bin' + self.upgrade_env = { + 'PAGER': '/bin/cat', + 'PATH': path, + 'PWD': '/', + 'HOME': '/', + 'TERM': 'xterm-256color' + } + + self.callback = callback + + # symbolic link created on fetch by freebsd-update + bd_hash = hashlib.sha256((self.path + '\n').encode('utf-8')).hexdigest() + self.freebsd_install_link = os.path.join(self.path, + 'var/db/freebsd-update', bd_hash + '-install') + + def upgrade_jail(self): + iocage_lib.ioc_common.tmp_dataset_checks(self.callback, self.silent) + + if "HBSD" in self.freebsd_version: + su.Popen(["hbsd-upgrade", "-j", self.jid]).communicate() + + return + + if not os.path.isfile(f"{self.path}/etc/freebsd-update.conf"): + return + + self.__upgrade_check_conf__() + + f_rel = f'{self.new_release.rsplit("-RELEASE")[0]}' + f = 'https://raw.githubusercontent.com/freebsd/freebsd-src' \ + f'/releng/{f_rel}/usr.sbin/freebsd-update/freebsd-update.sh' + + tmp = None + try: + tmp = tempfile.NamedTemporaryFile(delete=False) + with urllib.request.urlopen(f) as fbsd_update: + tmp.write(fbsd_update.read()) + tmp.close() + os.chmod(tmp.name, 0o755) + + fetch_cmd = [ + tmp.name, "-b", self.path, "-d", + f"{self.path}/var/db/freebsd-update/", "-f", + f"{self.path}/etc/freebsd-update.conf", + "--not-running-from-cron", "--currently-running " + f"{self.jail_release}", "-r", self.new_release, "upgrade" + ] + + # FreeNAS MW/Others, this is a best effort as things may require + # stdin input, in which case dropping to a tty is the best solution + if not self.interactive: + with iocage_lib.ioc_exec.IOCExec( + fetch_cmd, + self.path.replace('/root', ''), + uuid=self.uuid, + unjailed=True, + stdin_bytestring=b'y\n', + callback=self.callback, + ) as _exec: + iocage_lib.ioc_common.consume_and_log( + _exec, + callback=self.callback + ) + else: + iocage_lib.ioc_exec.InteractiveExec( + fetch_cmd, + self.path.replace('/root', ''), + uuid=self.uuid, + unjailed=True + ) + + if not os.path.islink(self.freebsd_install_link): + msg = 'Upgrade failed, nothing to install after fetch!' + iocage_lib.ioc_common.logit( + { + 'level': 'EXCEPTION', + 'message': msg + }, + _callback=self.callback, + silent=self.silent + ) + + for _ in range(50): # up to 50 invocations to prevent runaway + if os.path.islink(self.freebsd_install_link): + self.__upgrade_install__(tmp.name) + else: + break + + if os.path.islink(self.freebsd_install_link): + msg = f'Upgrade failed, freebsd-update won\'t finish!' + iocage_lib.ioc_common.logit( + { + 'level': 'EXCEPTION', + 'message': msg + }, + _callback=self.callback, + silent=self.silent + ) + + new_release = iocage_lib.ioc_common.get_jail_freebsd_version( + self.path, + self.new_release + ) + + if f_rel.startswith('12'): + # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=239498 + cp = su.Popen( + ['pkg-static', '-j', self.jid, 'install', '-q', '-f', '-y', 'pkg'], + stdout=su.PIPE, stderr=su.PIPE + ) + _, stderr = cp.communicate() + if cp.returncode: + # Let's make this non-fatal as this is only being done as a convenience to user + iocage_lib.ioc_common.logit( + { + 'level': 'ERROR', + 'message': 'Unable to install pkg after upgrade' + }, + _callback=self.callback, + silent=self.silent, + ) + + finally: + if tmp: + if not tmp.closed: + tmp.close() + os.remove(tmp.name) + + iocage_lib.ioc_json.IOCJson( + self.path.replace('/root', ''), + silent=True).json_set_value(f"release={new_release}") + + return new_release + + def upgrade_basejail(self, snapshot=True, snap_name=None): + if "HBSD" in self.freebsd_version: + # TODO: Not supported yet + msg = "Upgrading basejails on HardenedBSD is not supported yet." + iocage_lib.ioc_common.logit( + { + "level": "EXCEPTION", + "message": msg + }, + _callback=self.callback, + silent=self.silent) + + release_p = pathlib.Path(f"{self.iocroot}/releases/{self.new_release}") + self._freebsd_version = f"{self.iocroot}/releases/"\ + f"{self.new_release}/root/bin/freebsd-version" + + if not release_p.exists(): + msg = f"{self.new_release} is missing, please fetch it!" + iocage_lib.ioc_common.logit( + { + "level": "EXCEPTION", + "message": msg + }, + _callback=self.callback, + silent=self.silent) + + if snapshot: + self.__snapshot_jail__() + + p = pathlib.Path( + f"{self.iocroot}/releases/{self.new_release}/root/usr/src") + p_files = [] + + if p.exists(): + for f in p.iterdir(): + # We want to make sure files actually exist as well + p_files.append(f) + + if not p_files: + msg = f"{self.new_release} is missing 'src.txz', please refetch!" + iocage_lib.ioc_common.logit( + { + "level": "EXCEPTION", + "message": msg + }, + _callback=self.callback, + silent=self.silent) + + self.__upgrade_replace_basejail_paths__() + ioc_up_dir = pathlib.Path(f"{self.path}/iocage_upgrade") + + if not ioc_up_dir.exists(): + ioc_up_dir.mkdir(exist_ok=True, parents=True) + + mount_cmd = [ + "mount_nullfs", "-o", "ro", + f"{self.iocroot}/releases/{self.new_release}/root/usr/src", + f"{self.path}/iocage_upgrade" + ] + try: + iocage_lib.ioc_exec.SilentExec( + mount_cmd, + self.path.replace('/root', ''), + uuid=self.uuid, + unjailed=True + ) + except iocage_lib.ioc_exceptions.CommandFailed: + msg = "Mounting src into jail failed! Rolling back snapshot." + self.__rollback_jail__(name=snap_name) + + iocage_lib.ioc_common.logit( + { + "level": "EXCEPTION", + "message": msg + }, + _callback=self.callback, + silent=self.silent) + + etcupdate_cmd = [ + "/usr/sbin/jexec", f"ioc-{self.uuid.replace('.', '_')}", + "/usr/sbin/etcupdate", "-F", "-s", "/iocage_upgrade" + ] + try: + iocage_lib.ioc_exec.SilentExec( + etcupdate_cmd, + self.path.replace('/root', ''), + uuid=self.uuid, + unjailed=True + ) + except iocage_lib.ioc_exceptions.CommandFailed: + # These are now the result of a failed merge, nuking and putting + # the backup back + msg = "etcupdate failed! Rolling back snapshot." + self.__rollback_jail__(name=snap_name) + + su.Popen([ + "umount", "-f", f"{self.path}/iocage_upgrade" + ]).communicate() + + iocage_lib.ioc_common.logit( + { + "level": "EXCEPTION", + "message": msg + }, + _callback=self.callback, + silent=self.silent) + + new_release = iocage_lib.ioc_common.get_jail_freebsd_version( + f'{self.iocroot}/releases/{self.new_release}/root', + self.new_release + ) + + iocage_lib.ioc_json.IOCJson( + f"{self.path.replace('/root', '')}", + silent=True).json_set_value(f"release={new_release}") + + mq = pathlib.Path(f"{self.path}/var/spool/mqueue") + + if not mq.exists(): + mq.mkdir(exist_ok=True, parents=True) + + iocage_lib.ioc_exec.SilentExec( + ['newaliases'], + self.path.replace('/root', ''), + uuid=self.uuid + ) + + umount_command = [ + "umount", "-f", f"{self.path}/iocage_upgrade" + ] + iocage_lib.ioc_exec.SilentExec( + umount_command, + self.path.replace('/root', ''), + uuid=self.uuid, + unjailed=True + ) + + return new_release + + def __upgrade_install__(self, name): + """Installs the upgrade.""" + install_cmd = [ + name, "-b", self.path, "-d", + f"{self.path}/var/db/freebsd-update/", "-f", + f"{self.path}/etc/freebsd-update.conf", "-r", self.new_release, + "install" + ] + + if not self.interactive: + with iocage_lib.ioc_exec.IOCExec( + install_cmd, + self.path.replace('/root', ''), + uuid=self.uuid, + unjailed=True, + callback=self.callback, + ) as _exec: + iocage_lib.ioc_common.consume_and_log( + _exec, + callback=self.callback + ) + else: + iocage_lib.ioc_exec.InteractiveExec( + install_cmd, + self.path.replace('/root', ''), + uuid=self.uuid, + unjailed=True + ) + + def __upgrade_check_conf__(self): + """ + Replaces freebsd-update.conf's default Components configuration to not + update kernel + """ + f = f"{self.path}/etc/freebsd-update.conf" + text = "Components src world kernel" + replace = "Components src world" + + self.__upgrade_replace_text__(f, text, replace) + + def __upgrade_replace_basejail_paths__(self): + f = f"{self.iocroot}/jails/{self.uuid}/fstab" + self.__upgrade_replace_text__(f, self.jail_release, self.new_release) + + @staticmethod + def __upgrade_replace_text__(path, text, replace): + with fileinput.FileInput(path, inplace=True, backup=".bak") as _file: + for line in _file: + print(line.replace(text, replace), end='') + + os.remove(f"{path}.bak") + + def __snapshot_jail__(self): + import iocage_lib.iocage as ioc # Avoids dep issues + name = f"ioc_upgrade_{self.date}" + ioc.IOCage(jail=self.uuid, skip_jails=True, silent=True).snapshot(name) + + def __rollback_jail__(self, name=None): + import iocage_lib.iocage as ioc # Avoids dep issues + name = name if name else f'ioc_upgrade_{self.date}' + iocage = ioc.IOCage(jail=self.uuid, skip_jails=True, silent=True) + iocage.stop() + iocage.rollback(name) diff --git a/iocage/iocage_lib/iocage.py b/iocage/iocage_lib/iocage.py new file mode 100644 index 0000000..34d7da7 --- /dev/null +++ b/iocage/iocage_lib/iocage.py @@ -0,0 +1,2177 @@ +# Copyright (c) 2014-2019, iocage +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted providing that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +import collections +import datetime +import json +import operator +import os +import subprocess as su + +import iocage_lib.ioc_clean as ioc_clean +import iocage_lib.ioc_common as ioc_common +import iocage_lib.ioc_create as ioc_create +import iocage_lib.ioc_destroy as ioc_destroy +import iocage_lib.ioc_exec as ioc_exec +import iocage_lib.ioc_fetch as ioc_fetch +import iocage_lib.ioc_fstab as ioc_fstab +import iocage_lib.ioc_image as ioc_image +import iocage_lib.ioc_json as ioc_json +import iocage_lib.ioc_list as ioc_list +import iocage_lib.ioc_plugin as ioc_plugin +import iocage_lib.ioc_start as ioc_start +import iocage_lib.ioc_stop as ioc_stop +import iocage_lib.ioc_upgrade as ioc_upgrade +import iocage_lib.ioc_debug as ioc_debug +import iocage_lib.ioc_exceptions as ioc_exceptions + +from iocage_lib.cache import cache +from iocage_lib.dataset import Dataset +from iocage_lib.pools import Pool, PoolListableResource +from iocage_lib.release import Release +from iocage_lib.snapshot import SnapshotListableResource, Snapshot + + +class PoolAndDataset: + + def get_pool(self): + """ + Helper to get the current pool. + + Return: + string: with the pool name. + """ + + return ioc_json.IOCJson().json_get_value("pool") + + def get_iocroot(self): + """ + Helper to get the iocroot. + + Return: + string: with the iocroot name. + """ + return ioc_json.IOCJson().json_get_value("iocroot") + + +class IOCage: + + def __init__( + self, jail=None, rc=False, callback=None, silent=False, + activate=False, skip_jails=False, reset_cache=False, + ): + self.rc = rc + self.silent = silent + + # FreeNAS won't be entering through the CLI, so we set sane defaults + os.environ.get("IOCAGE_SKIP", "FALSE") + os.environ.get("IOCAGE_FORCE", "TRUE") + + if reset_cache: + self.reset_cache() + + if not activate: + self.generic_iocjson = ioc_json.IOCJson() + self.pool = self.generic_iocjson.pool + self.iocroot = self.generic_iocjson.iocroot + + if not skip_jails: + # When they need to destroy a jail with a missing or bad + # configuration, this gets in our way otherwise. + self.jails = self.list("uuid") + + self.skip_jails = skip_jails + self.jail = jail + self._all = True if self.jail and 'ALL' in self.jail else False + self.callback = callback + self.is_depend = False + + @staticmethod + def reset_cache(): + cache.reset() + + def __all__(self, jail_order, action, ignore_exception=False): + # So we can properly start these. + self._all = False + + for j in jail_order: + # We want this to be the real jail now. + self.jail = j + uuid, path = self.__check_jail_existence__() + status, jid = self.list("jid", uuid=uuid) + + if action == 'stop': + self.stop(j, ignore_exception=ignore_exception) + elif action == 'start': + if not status: + err, msg = self.start(j, ignore_exception=ignore_exception) + + if err: + ioc_common.logit( + { + 'level': 'ERROR', + 'message': msg + }, + _callback=self.callback, silent=self.silent + ) + else: + message = f"{uuid} ({j}) is already running!" + ioc_common.logit( + { + 'level': 'WARNING', + 'message': message + }, + _callback=self.callback, silent=self.silent + ) + + def __jail_order__(self, action, ignore_exception=False): + """Helper to gather lists of all the jails by order and boot order.""" + jail_order = {} + boot_order = {} + + _reverse = True if action == 'stop' else False + + for jail in self.jails: + self.jail = jail + uuid, path = self.__check_jail_existence__() + conf = ioc_json.IOCJson(path).json_get_value('all') + boot = conf['boot'] + priority = conf['priority'] + jail_order[jail] = int(priority) + + # This removes having to grab all the JSON again later. + + if boot: + boot_order[jail] = int(priority) + + jail_order = collections.OrderedDict( + sorted( + jail_order.items(), + key=operator.itemgetter(1), + reverse=_reverse)) + boot_order = collections.OrderedDict( + sorted( + boot_order.items(), + key=operator.itemgetter(1), + reverse=_reverse)) + + if self.rc: + self.__rc__(boot_order, action, ignore_exception) + elif self._all: + self.__all__(jail_order, action, ignore_exception) + + def __rc__(self, boot_order, action, ignore_exception=False): + """Helper to start all jails with boot=on""" + # So we can properly start these. + self.rc = False + + for j in boot_order.keys(): + # We want this to be the real jail now. + self.jail = j + + uuid, path = self.__check_jail_existence__() + status, _ = self.list("jid", uuid=uuid) + + if action == 'stop': + if status: + message = f" Stopping {uuid}" + ioc_common.logit( + { + 'level': 'INFO', + 'message': message + }, + _callback=self.callback, silent=self.silent + ) + + self.stop(j, ignore_exception=ignore_exception) + else: + message = f"{uuid} is not running!" + ioc_common.logit( + { + 'level': 'INFO', + 'message': message + }, + _callback=self.callback, silent=self.silent + ) + elif action == 'start': + if not status: + message = f" Starting {uuid}" + ioc_common.logit( + { + 'level': 'INFO', + 'message': message + }, + _callback=self.callback, silent=self.silent + ) + + err, msg = self.start(j, ignore_exception=ignore_exception) + + if err: + ioc_common.logit( + { + 'level': 'ERROR', + 'message': msg + }, + _callback=self.callback, silent=self.silent + ) + else: + message = f"{uuid} is already running!" + ioc_common.logit( + { + 'level': 'WARNING', + 'message': message + }, + _callback=self.callback, silent=self.silent + ) + + def __check_jail_existence__(self): + """ + Helper to check if jail dataset exists + Return: + tuple: The jails uuid, path + """ + + if os.path.isdir(f"{self.iocroot}/jails/{self.jail}"): + path = f"{self.iocroot}/jails/{self.jail}" + + return self.jail, path + elif os.path.isdir(f"{self.iocroot}/templates/{self.jail}"): + path = f"{self.iocroot}/templates/{self.jail}" + + return self.jail, path + else: + if self.skip_jails: + # We skip jails for performance, but if they didn't match be + # now need to gather the list and iterate. + self.jails = self.list("uuid") + + # We got a partial, time to search. + _jail = { + uuid: path + + for (uuid, path) in self.jails.items() + + if uuid.startswith(self.jail) + } + + if len(_jail) == 1: + uuid, path = next(iter(_jail.items())) + + return uuid, path + elif len(_jail) > 1: + msg = f"Multiple jails found for {self.jail}:" + + for u, p in sorted(_jail.items()): + msg += f"\n {u} ({p})" + + ioc_common.logit( + { + "level": "EXCEPTION", + "message": msg + }, + _callback=self.callback, + silent=self.silent) + else: + msg = f"jail '{self.jail}' not found!" + + ioc_common.logit( + { + "level": "EXCEPTION", + "message": msg + }, + _callback=self.callback, + silent=self.silent) + + @staticmethod + def __check_jail_type__(_type, uuid): + """ + Return: + tuple: True if error with a message, or False/None + """ + + if _type in ("jail", "plugin", "clonejail", "pluginv2"): + return False, None + elif _type == 'basejail': + return (True, "Please run \"iocage migrate\" before trying to" + f" start {uuid}") + elif _type == 'template': + return (True, "Please convert back to a jail before trying to" + f" start {uuid}") + else: + return True, f"{_type} is not a supported jail type." + + @staticmethod + def __mount__(path, _type): + if _type == "devfs": + cmd = ["mount", "-t", "devfs", "devfs", path] + else: + cmd = ["mount", "-a", "-F", path] + + _, stderr = su.Popen(cmd, stdout=su.PIPE, stderr=su.PIPE).communicate() + + return stderr + + @staticmethod + def __umount__(path, _type): + if _type == "devfs": + cmd = ["umount", path] + else: + cmd = ["umount", "-a", "-F", path] + + _, stderr = su.Popen(cmd, stdout=su.PIPE, stderr=su.PIPE).communicate() + + return stderr + + def activate(self, zpool): + """Activates the zpool for iocage usage""" + zpool = Pool(zpool, cache=False) + if not zpool.exists: + ioc_common.logit( + { + "level": "EXCEPTION", + "message": f"ZFS pool '{zpool}' not found!" + }, + _callback=self.callback, + silent=self.silent) + + for pool in PoolListableResource(): + if pool == zpool: + locked_error = None + if pool.root_dataset.locked: + locked_error = f'ZFS pool "{zpool}" root dataset is locked' + + iocage_ds = Dataset(os.path.join(zpool.name, 'iocage')) + if iocage_ds.exists and iocage_ds.locked: + locked_error = f'ZFS dataset "{iocage_ds.name}" is locked' + if locked_error: + ioc_common.logit( + { + 'level': 'EXCEPTION', + 'message': locked_error, + }, + _callback=self.callback, + silent=self.silent, + ) + else: + pool.activate_pool() + else: + pool.deactivate_pool() + + def deactivate(self, zpool): + zpool = Pool(zpool, cache=False) + if not zpool.exists: + ioc_common.logit( + { + 'level': 'EXCEPTION', + 'message': f'ZFS pool "{zpool}" not found!' + }, + _callback=self.callback, + silent=self.silent) + zpool.deactivate_pool() + + def chroot(self, command): + """Deprecated: Chroots into a jail and runs a command, or the shell.""" + ioc_common.logit( + { + "level": "INFO", + "message": + ( + "iocage chroot is deprecated. " + "If you need to execute a {} inside the jail use: {}" + ).format(*[ + ["shell", "iocage console"], + ["command", "iocage exec"] + ][int(len(command) != 0)]) + }, + _callback=self.callback, + silent=self.silent) + + def clean(self, d_type): + """Destroys all of a specified dataset types.""" + if d_type == 'jails': + ioc_clean.IOCClean(silent=self.silent).clean_jails() + ioc_common.logit( + { + 'level': 'INFO', + 'message': 'All iocage jail datasets have been destroyed.' + }, + _callback=self.callback, + silent=self.silent) + elif d_type == 'all': + ioc_clean.IOCClean(silent=self.silent).clean_all() + ioc_common.logit( + { + 'level': 'INFO', + 'message': 'All iocage datasets have been destroyed.' + }, + _callback=self.callback, + silent=self.silent) + elif d_type == 'release': + ioc_clean.IOCClean(silent=self.silent).clean_releases() + ioc_common.logit( + { + 'level': 'INFO', + 'message': 'All iocage RELEASE and jail datasets have been' + ' destroyed.' + }, + _callback=self.callback, + silent=self.silent) + elif d_type == 'template': + ioc_clean.IOCClean(silent=self.silent).clean_templates() + ioc_common.logit( + { + 'level': 'INFO', + 'message': + 'All iocage template datasets have been destroyed.' + }, + _callback=self.callback, + silent=self.silent) + elif d_type == 'images': + ioc_clean.IOCClean(silent=self.silent).clean_images() + ioc_common.logit( + { + 'level': 'INFO', + 'message': 'The iocage images dataset has been destroyed.' + }, + _callback=self.callback, + silent=self.silent) + elif d_type == 'debug': + ioc_clean.IOCClean(silent=self.silent).clean_debug() + ioc_common.logit( + { + 'level': 'INFO', + 'message': 'All iocage debugs have been destroyed.' + }, + _callback=self.callback, + silent=self.silent) + else: + ioc_common.logit( + { + "level": "EXCEPTION", + "message": "Please specify a dataset type to clean!" + }, + _callback=self.callback, + silent=self.silent) + + def create(self, + release, + props, + count=0, + pkglist=None, + template=False, + short=False, + _uuid=None, + basejail=False, + thickjail=False, + empty=False, + clone=None, + skip_batch=False, + thickconfig=False, + clone_basejail=False): + """Creates the jail dataset""" + count = 0 if count == 1 and not skip_batch else count + + if short and _uuid: + _uuid = _uuid[:8] + + if len(_uuid) != 8: + ioc_common.logit( + { + "level": + "EXCEPTION", + "message": + "Need a minimum of 8 characters to use --short" + " (-s) and --uuid (-u) together!" + }, + _callback=self.callback, + silent=self.silent) + + if not template and not release and not empty and not clone: + ioc_common.logit( + { + "level": + "EXCEPTION", + "message": + "Must supply either --template (-t) or" + " --release (-r)!" + }, + _callback=self.callback, + silent=self.silent) + + if release is not None: + if os.path.isdir( + f'{self.iocroot}/releases/{release.upper()}' + ) and not template and not empty and not clone: + release = release.upper() + + if not os.path.isdir( + f'{self.iocroot}/releases/{release}' + ) and not template and not empty and not clone: + freebsd_version = ioc_common.checkoutput(["freebsd-version"]) + + if "HBSD" in freebsd_version: + hardened = True + else: + hardened = False + + arch = os.uname()[4] + + if arch in {'i386', 'arm64'}: + files = ['MANIFEST', 'base.txz', 'src.txz'] + else: + files = ['MANIFEST', 'base.txz', 'lib32.txz', 'src.txz'] + + try: + if int(release.rsplit('-')[0].rsplit('.')[0]) < 12: + # doc.txz has relevance here still + files.append('doc.txz') + except (AttributeError, ValueError): + # Non-standard naming scheme, assuming it's current + pass + + ioc_fetch.IOCFetch( + release, + hardened=hardened, + files=files, + silent=self.silent + ).fetch_release() + + if clone: + clone_uuid, path = self.__check_jail_existence__() + + if 'templates' in path: + template = True + + status, _ = self.list("jid", uuid=clone_uuid) + + if status: + ioc_common.logit( + { + "level": + "EXCEPTION", + "message": + f"Jail: {self.jail} must not be running to be" + " cloned!" + }, + _callback=self.callback, + silent=self.silent) + + release = clone_uuid + clone = self.jail + + try: + if count > 1 and not skip_batch: + for j in range(1, count + 1): + + self.create( + release, + props, + j, + pkglist=pkglist, + template=template, + short=short, + _uuid=f"{_uuid}_{j}" if _uuid else None, + basejail=basejail, + thickjail=thickjail, + empty=empty, + clone=clone, + skip_batch=True, + thickconfig=thickconfig, + clone_basejail=clone_basejail) + else: + ioc_create.IOCCreate( + release, + props, + count, + pkglist, + silent=self.silent, + template=template, + short=short, + basejail=basejail, + thickjail=thickjail, + empty=empty, + uuid=_uuid, + clone=clone, + thickconfig=thickconfig, + clone_basejail=clone_basejail + ).create_jail() + except BaseException: + if clone: + su.run( + [ + 'zfs', 'destroy', '-r', + f'{self.pool}/iocage/jails/{clone}@{_uuid}' + ] + ) + raise + + return False, None + + def destroy_release(self, download=False): + """Destroy supplied RELEASE and the download dataset if asked""" + path = f"{self.pool}/iocage/releases/{self.jail}" + + release = Release(self.jail) + # Let's make sure the release exists before we try to destroy it + if not release: + ioc_common.logit({ + 'level': 'EXCEPTION', + 'message': f'Release: {self.jail} not found!' + }) + + ioc_common.logit( + { + "level": "INFO", + "message": f"Destroying RELEASE dataset: {self.jail}" + }, + _callback=self.callback, + silent=self.silent) + + ioc_destroy.IOCDestroy().__destroy_parse_datasets__(path, stop=False) + + if download: + path = f"{self.pool}/iocage/download/{self.jail}" + ioc_common.logit( + { + "level": "INFO", + "message": + f"Destroying RELEASE download dataset: {self.jail}" + }, + _callback=self.callback, + silent=self.silent) + + ioc_destroy.IOCDestroy().__destroy_parse_datasets__(path, + stop=False) + + def destroy_jail(self, force=False): + """ + Destroys the supplied jail, to reduce perfomance hit, + call IOCage with skip_jails=True + """ + try: + self.jails = self.list("uuid") + except (RuntimeError, SystemExit) as err: + err = str(err) + + if "Configuration is missing" in err: + uuid = err.split()[5] + path = f"{self.pool}/iocage/jails/{uuid}" + + if uuid == self.jail: + ioc_destroy.IOCDestroy().__destroy_parse_datasets__( + path, stop=False) + + ioc_common.logit( + { + "level": "INFO", + "message": f"{uuid} destroyed" + }, + _callback=self.callback, + silent=self.silent) + + return + else: + ioc_common.logit( + { + "level": "EXCEPTION", + "message": err + }, + _callback=self.callback, + silent=self.silent) + except FileNotFoundError as err: + # Jail is lacking a configuration, time to nuke it from orbit. + uuid = str(err).rsplit("/")[-2] + path = f"{self.pool}/iocage/jails/{uuid}" + + if uuid == self.jail: + ioc_destroy.IOCDestroy().__destroy_parse_datasets__(path) + + return + else: + ioc_common.logit( + { + "level": "EXCEPTION", + "message": err + }, + _callback=self.callback, + silent=self.silent) + + uuid, path = self.__check_jail_existence__() + status, _ = self.list("jid", uuid=uuid) + + if status: + if not force: + ioc_common.logit( + { + "level": "EXCEPTION", + "message": (f"Jail {uuid} is still running, " + f"please stop the jail first " + f"or destroy it with -f") + }, + _callback=self.callback, + silent=self.silent) + else: + ioc_common.logit( + { + "level": "INFO", + "message": f"Stopping {uuid}" + }, + _callback=self.callback, + silent=self.silent) + + ioc_common.logit( + { + "level": "INFO", + "message": f"Destroying {uuid}" + }, + _callback=self.callback, + silent=self.silent) + + ioc_destroy.IOCDestroy().destroy_jail(path) + + def df(self): + """Returns a list containing the resource usage of all jails""" + jail_list = [] + + for jail, path in self.jails.items(): + conf = ioc_json.IOCJson(path).json_get_value('all') + mountpoint = f"{self.pool}/iocage/jails/{jail}" + + template = conf["type"] + + if template == "template": + mountpoint = f"{self.pool}/iocage/templates/{jail}" + + ds = Dataset(mountpoint) + zconf = ds.properties + + compressratio = zconf["compressratio"] + reservation = zconf["reservation"] + quota = zconf["quota"] + used = zconf["used"] + available = zconf["available"] + + jail_list.append( + [jail, compressratio, reservation, quota, used, available]) + + return jail_list + + def exec_all( + self, command, host_user='root', jail_user=None, console=False, + start_jail=False, interactive=False, unjailed=False, msg_return=False + ): + """Runs exec for all jails""" + self._all = False + for jail in self.jails: + self.jail = jail + self.exec( + command, host_user, jail_user, console, start_jail, + interactive, unjailed, msg_return + ) + + def exec( + self, command, host_user='root', jail_user=None, console=False, + start_jail=False, interactive=False, unjailed=False, msg_return=False + ): + """Executes a command in the jail as the supplied users.""" + if self._all: + self.exec_all( + command, host_user, jail_user, console, start_jail, + interactive, unjailed, msg_return + ) + return + + pkg = unjailed + + if host_user and jail_user is not None: + ioc_common.logit( + { + 'level': 'EXCEPTION', + 'message': 'Please only specify either host_user or' + ' jail_user, not both!' + }, + _callback=self.callback, + silent=self.silent) + + uuid, path = self.__check_jail_existence__() + exec_clean = self.get('exec_clean') + + if exec_clean: + env_path = '/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:' \ + '/usr/local/bin:/root/bin' + env_lang = os.environ.get('LANG', 'en_US.UTF-8') + su_env = { + 'PATH': env_path, + 'PWD': '/', + 'HOME': '/', + 'TERM': 'xterm-256color', + 'LANG': env_lang, + 'LC_ALL': env_lang + } + else: + su_env = os.environ.copy() + + status, jid = self.list("jid", uuid=uuid) + + if not status and not start_jail: + if not ioc_common.INTERACTIVE: + ioc_common.logit( + { + "level": "EXCEPTION", + "message": f'{self.jail} is not running! Please supply' + ' start_jail=True or start the jail' + }, + _callback=self.callback, + silent=self.silent) + else: + ioc_common.logit( + { + "level": "EXCEPTION", + "message": f'{self.jail} is not running! Please supply' + ' --force (-f) or start the jail' + }, + _callback=self.callback, + silent=self.silent) + elif not status: + self.start() + status, jid = self.list("jid", uuid=uuid) + + if pkg: + ip4_addr = self.get("ip4_addr") + ip6_addr = self.get("ip6_addr") + dhcp = self.get("dhcp") + nat = self.get('nat') + + if ( + ip4_addr == ip6_addr == "none" and not dhcp and not nat + ): + ioc_common.logit( + { + "level": + "EXCEPTION", + "message": + "The jail requires an IP address before you " + "can use pkg. Set one and restart the jail." + }, + _callback=self.callback, + silent=self.silent) + + command = ["pkg", "-j", jid] + list(command) + + if console: + login_flags = self.get('login_flags').split() + console_cmd = ['login', '-p'] + login_flags + + try: + ioc_exec.InteractiveExec(console_cmd, path, uuid=uuid) + except BaseException as e: + ioc_common.logit( + { + 'level': 'ERROR', + 'message': 'Console failed!\nThe cause could be bad ' + f'permissions for {path}/root/usr/lib.' + }, + _callback=self.callback, + silent=False + ) + raise e + return + + if interactive: + ioc_exec.InteractiveExec( + command, + path, + uuid=uuid, + host_user=host_user, + jail_user=jail_user, + skip=True + ) + return + + try: + with ioc_exec.IOCExec( + command, + path, + uuid=uuid, + host_user=host_user, + jail_user=jail_user, + unjailed=pkg, + su_env=su_env + ) as _exec: + output = ioc_common.consume_and_log( + _exec + ) + + if msg_return: + return output['stdout'] + + for line in output['stdout']: + ioc_common.logit( + { + "level": "INFO", + "message": line + }, + _callback=self.callback, + silent=self.silent) + except ioc_exceptions.CommandFailed as e: + msgs = [_msg.decode().rstrip() for _msg in e.message] + if msgs: + ioc_common.logit( + { + "level": "EXCEPTION", + "message": '\n'.join(msgs) + }, + _callback=self.callback, + silent=self.silent) + else: + ioc_common.logit( + { + "level": "EXCEPTION", + "message": f'Command: {command} failed!' + }, + _callback=self.callback, + silent=self.silent) + + def export(self, compression_algo='zip'): + """Will export a jail""" + uuid, path = self.__check_jail_existence__() + status, _ = self.list("jid", uuid=uuid) + + if status: + ioc_common.logit( + { + "level": + "EXCEPTION", + "message": + f"{uuid} is running, stop the jail before" + " exporting!" + }, + _callback=self.callback, + silent=self.silent) + + ioc_image.IOCImage().export_jail( + uuid, path, compression_algo=compression_algo + ) + + def fetch(self, **kwargs): + """Fetches a release or plugin.""" + release = kwargs.pop("release", None) + name = kwargs.pop("name", None) + props = kwargs.pop("props", ()) + plugins = kwargs.pop("plugins", False) + plugin_name = kwargs.pop("plugin_name", None) + count = kwargs.pop("count", 1) + accept = kwargs.pop("accept", False) + _list = kwargs.pop("list", False) + remote = kwargs.pop("remote", False) + http = kwargs.get("http", True) + hardened = kwargs.get("hardened", False) + header = kwargs.pop("header", True) + _long = kwargs.pop("_long", False) + official = kwargs.pop("official", False) + branch = kwargs.pop("branch", None) + keep_jail_on_failure = kwargs.pop("keep_jail_on_failure", False) + thick_config = kwargs.pop("thickconfig", False) + + freebsd_version = ioc_common.checkoutput(["freebsd-version"]) + arch = os.uname()[4] + + if not _list: + if not kwargs.get('files', None): + if arch in {'i386', 'arm64'}: + kwargs['files'] = ['MANIFEST', 'base.txz', 'src.txz'] + else: + kwargs['files'] = ['MANIFEST', 'base.txz', 'lib32.txz', + 'src.txz'] + + try: + if int(release.rsplit('-')[0].rsplit('.')[0]) < 12: + # doc.txz has relevance here still + kwargs['files'].append('doc.txz') + except (AttributeError, ValueError): + # Non-standard naming scheme, assuming it's current + pass + + if "HBSD" in freebsd_version: + if kwargs["server"] == "download.freebsd.org": + kwargs["hardened"] = True + else: + kwargs["hardened"] = False + else: + kwargs["hardened"] = False + + if plugins or plugin_name: + if _list: + rel_list = ioc_plugin.IOCPlugin( + branch=branch, + thickconfig=thick_config, + **kwargs + ).fetch_plugin_index( + "", _list=True, list_header=header, list_long=_long, + icon=True, official=official + ) + + return rel_list + + if plugins: + ioc_plugin.IOCPlugin( + release=release, + plugin=plugin_name, + branch=branch, + thickconfig=thick_config, + **kwargs).fetch_plugin_index( + props, accept_license=accept, official=official) + + return + + plugin_obj = ioc_plugin.IOCPlugin( + release=release, plugin=plugin_name, + branch=branch, silent=self.silent, + keep_jail_on_failure=keep_jail_on_failure, + callback=self.callback, **kwargs, + thickconfig=thick_config, + ) + + i = 1 + check_jail_name = name or plugin_obj.retrieve_plugin_json().get( + 'name', plugin_name + ) + while True: + if check_jail_name not in self.jails: + jail_name = check_jail_name + break + elif f'{check_jail_name}_{i}' not in self.jails: + jail_name = f'{check_jail_name}_{i}' + break + i += 1 + + self.jails[jail_name] = jail_name # Not a valid value + if count == 1: + plugin_obj.jail = jail_name + plugin_obj.fetch_plugin(props, 0, accept) + else: + for j in range(1, count + 1): + # Repeating this block in case they have gaps in their + # plugins + # Allows plugin_1, plugin_2, and such to happen instead of + # plugin_1_1, plugin_1_2 + while True: + if jail_name not in self.jails: + break + elif f'{check_jail_name}_{i}' not in self.jails: + jail_name = f'{check_jail_name}_{i}' + break + + i += 1 + + self.jails[jail_name] = jail_name # Not a valid value + plugin_obj.jail = jail_name + plugin_obj.fetch_plugin(props, j, accept) + else: + kwargs.pop('git_repository', None) + kwargs.pop('git_destination', None) + + if _list: + if remote: + rel_list = ioc_fetch.IOCFetch( + "", http=http, hardened=hardened).fetch_release( + _list=True) + else: + rel_list = self.list("base") + + return rel_list + + ioc_fetch.IOCFetch( + release, + silent=self.silent, callback=self.callback, + **kwargs).fetch_release() + + def fstab(self, + action, + source, + destination, + fstype, + options, + dump, + _pass, + index=None, + add_path=False, + header=False): + """Adds an fstab entry for a jail""" + uuid, path = self.__check_jail_existence__() + + if action != "list": + if add_path: + destination = f"{self.iocroot}/jails/{uuid}/root{destination}" + + if destination and len(destination) > 88: + ioc_common.logit( + { + "level": + "WARNING", + "message": + "The destination's mountpoint exceeds 88 " + "characters, this may cause failure!" + }, + _callback=self.callback, + silent=self.silent) + + if action == "list": + fstab = ioc_fstab.IOCFstab( + uuid, + action, + source, + destination, + fstype, + options, + dump, + _pass, + index=index, + header=header, + ).fstab_list() + + return fstab + else: + ioc_fstab.IOCFstab( + uuid, + action, + source, + destination, + fstype, + options, + dump, + _pass, + index=index + ) + + def get( + self, prop, recursive=False, plugin=False, pool=False, start_jail=False + ): + """Get a jail property""" + if start_jail and not plugin: + ioc_common.logit( + { + 'level': 'EXCEPTION', + 'message': + '--force (-f) is only applicable with --plugin (-P)!' + }, + _callback=self.callback, + silent=self.silent) + + if pool: + return self.pool + + if not recursive: + if self.jail == "default": + try: + return ioc_json.IOCJson().json_get_value(prop, + default=True) + except KeyError: + ioc_common.logit( + { + "level": "EXCEPTION", + "message": f"{prop} is not a valid property!" + }, + _callback=self.callback, + silent=self.silent) + + uuid, path = self.__check_jail_existence__() + status, jid = self.list("jid", uuid=uuid) + + state = "up" if status else "down" + + if prop == "state": + return state + elif plugin: + if not status and not start_jail: + if not ioc_common.INTERACTIVE: + ioc_common.logit( + { + "level": "EXCEPTION", + "message": f'{self.jail} is not running!' + ' Please supply start_jail=True or' + ' start the jail' + }, + _callback=self.callback, + silent=self.silent) + else: + ioc_common.logit( + { + "level": "EXCEPTION", + "message": f'{self.jail} is not running!' + ' Please supply --force (-f) or' + ' start the jail' + }, + _callback=self.callback, + silent=self.silent) + + try: + _prop = prop.split(".") + props = ioc_json.IOCJson(path).json_plugin_get_value( + _prop + ) + except ioc_exceptions.CommandNeedsRoot as err: + ioc_common.logit( + { + 'level': 'EXCEPTION', + 'message': err.message + }, + _callback=self.callback, + silent=False) + + if isinstance(props, dict): + return json.dumps(props, indent=4) + else: + return props + elif prop == "all": + _props = {} + + props = ioc_json.IOCJson(path).json_get_value(prop) + + # We want this sorted below, so we add it to the old dict + props["state"] = state + + for key in sorted(props.keys()): + _props[key] = props[key] + + return _props + else: + try: + return ioc_json.IOCJson(path).json_get_value(prop) + except KeyError: + ioc_common.logit( + { + "level": "EXCEPTION", + "message": f"{prop} is not a valid property!" + }, + _callback=self.callback, + silent=self.silent) + else: + jail_list = [] + active_jails = ioc_common.get_active_jails() + + for uuid, path in self.jails.items(): + try: + jid = active_jails.get(f'ioc-{uuid.replace(".", "_")}', {}).get('jid') + state = "up" if jid else "down" + + if prop == "state": + jail_list.append({uuid: state}) + elif prop == "all": + _props = {} + try: + props = ioc_json.IOCJson(path).json_get_value(prop) + except (Exception, SystemExit): + # Jail is corrupt, we want all the keys to exist. + # So we will take the defaults and let the user + # know that they are not correct. + def_props = ioc_json.IOCJson().json_get_value( + 'all', + default=True + ) + jail_list.append({ + uuid: { + **{x: 'N/A' for x in def_props}, + 'host_hostuuid': uuid, + 'state': 'CORRUPT', + 'release': 'N/A', + 'jid': None, + } + }) + + continue + + # We want this sorted below, so we add it to the old + # dict + props.update({ + 'state': state, + 'jid': jid, + }) + + for key in sorted(props.keys()): + _props[key] = props[key] + + jail_list.append({uuid: _props}) + else: + jail_list.append({ + uuid: + ioc_json.IOCJson(path).json_get_value(prop) + }) + except KeyError: + ioc_common.logit( + { + "level": "EXCEPTION", + "message": f"{prop} is not a valid property!" + }, + _callback=self.callback, + silent=self.silent) + + sort = ioc_common.ioc_sort("get", "key") + jail_list.sort(key=sort) + + return jail_list + + def import_(self, compression_algo='zip', path=None): + """Imports a jail""" + ioc_image.IOCImage().import_jail( + self.jail, compression_algo=compression_algo, path=path + ) + + def list( + self, lst_type, header=False, long=False, sort='name', uuid=None, + plugin=False, quick=False, **kwargs + ): + """Returns a list of lst_type""" + + if lst_type == "jid": + return ioc_list.IOCList(**kwargs).list_get_jid(uuid) + + return ioc_list.IOCList( + lst_type, + header, + long, + sort, + plugin=plugin, + quick=quick, + silent=self.silent, + **kwargs + ).list_datasets() + + def rename(self, new_name): + uuid, old_mountpoint = self.__check_jail_existence__() + + _template = False + _folders = ["jails", "templates"] + + if old_mountpoint.startswith(f"{self.iocroot}/templates/"): + _template = True + _folders = _folders[::-1] + + new_mountpoint = f"{self.iocroot}/{_folders[0]}/{new_name}" + + if ioc_common.match_to_dir(self.iocroot, new_name, + old_uuid=old_mountpoint): + + ioc_common.logit( + { + "level": "EXCEPTION", + "message": f"Jail: {new_name} already exists!" + }, + _callback=self.callback, + silent=self.silent) + + path = f"{self.pool}/iocage/{_folders[0]}/{uuid}" + new_path = f"{self.pool}/iocage/{_folders[0]}/{new_name}" + + _silent = self.silent + self.silent = True + + self.stop() + + self.silent = _silent + + # Can't rename when the child is in a non-global zone + for str_dataset in self.get("jail_zfs_dataset").split(): + data_dataset = Dataset(f'{self.pool}/{str_dataset.strip()}') + if data_dataset.exists: + # We only do this when it exists ( keeping old behavior ) + data_dataset.set_property('jailed', 'off') + + for release_snap in SnapshotListableResource().release_snapshots: + if uuid == release_snap.name: + rel_ds = release_snap.dataset.name + su.check_call([ + 'zfs', 'rename', '-r', f'{rel_ds}@{uuid}', f'@{new_name}' + ]) + + dataset = Dataset(path) + dataset.rename(new_path, {'force_unmount': True}) + + self.jail = new_name + + self.silent = True + self.set(f"host_hostuuid={new_name}", rename=True) + + if self.get("host_hostname") == uuid: + self.set(f"host_hostname={new_name}") + + zfs_dataset = self.get("jail_zfs_dataset") + if f"iocage/jails/{uuid}" in zfs_dataset: + zfs_dataset = zfs_dataset.replace(f"iocage/jails/{uuid}", + f"iocage/jails/{new_name}") + self.set(f"jail_zfs_dataset={zfs_dataset}") + + self.silent = _silent + + # Templates are readonly + if _template: + # All self.set's set this back to on, this must be last + dataset.set_property('readonly', 'off') + + # Adjust mountpoints in fstab + jail_fstab = f"{new_mountpoint}/fstab" + + try: + with open(jail_fstab, "r") as fstab: + with ioc_common.open_atomic(jail_fstab, "w") as _fstab: + for line in fstab.readlines(): + _fstab.write(line.replace( + f"{self.iocroot}/jails/{uuid}/", + f"{self.iocroot}/jails/{new_name}/")) + except OSError: + pass + + if _template: + for jail, path in self.jails.items(): + # Stale list and isn't relevant for our loop anyways + if jail == uuid: + continue + + _json = ioc_json.IOCJson(path, silent=True) + + try: + source_template = _json.json_get_value('source_template') + except KeyError: + continue + + if source_template == uuid: + _json.json_set_value(f'source_template={new_name}') + + dataset.set_property('readonly', 'on') + + ioc_common.logit( + { + "level": "INFO", + "message": f"Jail: {uuid} renamed to {new_name}" + }, + _callback=self.callback, + silent=self.silent) + + def restart(self, soft=False): + if self._all: + if not soft: + self.__jail_order__("stop") + # This gets unset each time. + self._all = True + + self.__jail_order__("start") + else: + for j in self.jails: + self.jail = j + self.__soft_restart__() + else: + if not soft: + # __rc__ will set this to false for each, we want to preserve + # it + _rc = self.rc + self.stop() + + self.rc = _rc + self.start() + else: + self.__soft_restart__() + + def rollback(self, name): + """Rolls back a jail and all datasets to the supplied snapshot""" + uuid, path = self.__check_jail_existence__() + conf = ioc_json.IOCJson(path, silent=self.silent).json_get_value('all') + status, _ = self.list("jid", uuid=uuid) + + if status: + ioc_common.logit( + { + "level": "EXCEPTION", + "message": f"Please stop {uuid} before trying to" + " rollback!" + }, + _callback=self.callback, + silent=self.silent) + + if ioc_common.check_truthy(conf['template']): + target = f"{self.pool}/iocage/templates/{uuid}" + else: + target = f"{self.pool}/iocage/jails/{uuid}" + + dataset = Dataset(target) + if not dataset.exists: + ioc_common.logit( + {'level': 'EXCEPTION', 'message': f'{target} does not exist'}, + _callback=self.callback, silent=self.silent + ) + snap = Snapshot(f'{dataset.name}@{name}') + if not snap.exists: + ioc_common.logit( + {'level': 'EXCEPTION', 'message': f'{snap} does not exist'}, + _callback=self.callback, silent=self.silent + ) + + for ds in dataset.get_dependents(depth=None): + if ds.properties['type'] == 'filesystem': + Snapshot(f'{ds.name}@{name}').rollback( + {'destroy_latest': True} + ) + + # datasets is actually the parent. + snap.rollback({'destroy_latest': True}) + + ioc_common.logit( + { + "level": "INFO", + "message": f"Rolled back to: {target}" + }, + _callback=self.callback, + silent=self.silent) + + def set(self, prop, plugin=False, rename=False): + """Sets a property for a jail or plugin""" + # The cli check prevents users changing unwanted properties. We do + # want to change a protected property with rename, so we disable that. + cli = False if rename else True + + try: + key, value = prop.split("=", 1) + except ValueError: + ioc_common.logit( + { + "level": "EXCEPTION", + "message": f"{prop} is missing a value!" + }, + _callback=self.callback, + silent=self.silent) + + if key == "ip4_addr" or key == "ip6_addr": + # We don't want spaces here + value = value.replace(" ", "") + + if self.jail == "default": + ioc_json.IOCJson().check_default_config() + default = True + else: + default = False + + if default: + ioc_json.IOCJson(self.iocroot).json_set_value(prop, default=True) + return + + uuid, path = self.__check_jail_existence__() + iocjson = ioc_json.IOCJson( + path, + cli=cli, + callback=self.callback, + silent=self.silent) + + if plugin: + _prop = prop.split(".") + iocjson.json_plugin_set_value(_prop) + + return + + if "template" in key: + if prop in ioc_common.construct_truthy( + 'template' + ) and path.startswith( + f'{self.iocroot}/templates/' + ): + ioc_common.logit( + { + "level": "EXCEPTION", + "message": f"{uuid} is already a template!" + }, + _callback=self.callback, + silent=self.silent) + + elif prop in ioc_common.construct_truthy( + 'template', inverse=True + ) and path.startswith( + f'{self.iocroot}/jails/' + ): + ioc_common.logit( + { + "level": "EXCEPTION", + "message": f"{uuid} is already a jail!" + }, + _callback=self.callback, + silent=self.silent) + + try: + # We use this to test if it's a valid property at all. + _prop = prop.partition("=")[0] + self.get(_prop) + + # The actual setting of the property. + iocjson.json_set_value(prop) + except KeyError: + _prop = prop.partition("=")[0] + ioc_common.logit( + { + "level": "EXCEPTION", + "message": f"{_prop} is not a valid property!" + }, + _callback=self.callback, + silent=self.silent) + + if key == "ip6_addr": + rtsold_enable = "YES" if "accept_rtadv" in value else "NO" + ioc_common.set_rcconf(path, "rtsold_enable", rtsold_enable) + + def snap_list(self, long=True, _sort="created"): + """Gathers a list of snapshots and returns it""" + uuid, path = self.__check_jail_existence__() + conf = ioc_json.IOCJson(path, silent=self.silent).json_get_value('all') + snap_list = [] + snap_list_temp = [] + snap_list_root = [] + + if ioc_common.check_truthy(conf['template']): + full_path = f"{self.pool}/iocage/templates/{uuid}" + else: + full_path = f"{self.pool}/iocage/jails/{uuid}" + + dataset = Dataset(full_path) + + for snap in dataset.snapshots_recursive(): + snap_name = snap.name if not long else snap.resource_name + root_snap_name = snap.resource_name.rsplit("@")[0].split("/")[-1] + root = False + + if root_snap_name == "root": + if not long: + snap_name += "/root" + + root = True + elif root_snap_name != uuid: + # basejail datasets. + + continue + + creation = snap.properties["creation"] + used = snap.properties["used"] + referenced = snap.properties["referenced"] + + snap_list_temp.append([snap_name, creation, referenced, used]) \ + if not root else snap_list_root.append([snap_name, creation, + referenced, used]) + + for parent in snap_list_temp: + # We want the /root snapshots immediately after the parent ones + name = parent[0] + + if long: + name, snap_name = parent[0].split("@") + name = f"{name}/root@{snap_name}" + + for root in snap_list_root: + _name = root[0] + + # Long has this already, the short comparison will fail. + root_comparison = name if long else f"{name}/root" + + if root_comparison == _name: + snap_list.append(parent) + snap_list.append(root) + + sort = ioc_common.ioc_sort("snaplist", _sort, data=snap_list) + snap_list.sort(key=sort) + + return snap_list + + def snapshot(self, name): + """Will create a snapshot for the given jail""" + date = datetime.datetime.utcnow().strftime("%F_%T") + uuid, path = self.__check_jail_existence__() + + # If they don't supply a snapshot name, we will use the date. + + if not name: + name = date + + # Looks like foo/iocage/jails/df0ef69a-57b6-4480-b1f8-88f7b6febbdf@BAR + conf = ioc_json.IOCJson(path, silent=self.silent).json_get_value('all') + + if ioc_common.check_truthy(conf['template']): + target = f"{self.pool}/iocage/templates/{uuid}" + else: + target = f"{self.pool}/iocage/jails/{uuid}" + + snap = Snapshot(f'{target}@{name}') + if snap.exists: + ioc_common.logit( + { + 'level': 'EXCEPTION', 'force_raise': True, + 'message': 'Snapshot already exists' + }, + _callback=self.callback, silent=self.silent, + exception=ioc_exceptions.Exists + ) + + snap.create_snapshot({'recursive': True}) + + if not self.silent: + ioc_common.logit({ + "level": "INFO", + "message": f"Snapshot: {target}@{name} created." + }) + + def __soft_restart__(self): + """ + Executes a soft reboot by keeping the jail network stack intact, + but executing the rc scripts. + """ + uuid, path = self.__check_jail_existence__() + status, jid = self.list("jid", uuid=uuid) + conf = ioc_json.IOCJson(path, silent=self.silent).json_get_value('all') + + # These need to be a list. + exec_start = conf["exec_start"].split() + exec_stop = conf["exec_stop"].split() + exec_fib = conf["exec_fib"] + + if status: + ioc_common.logit( + { + "level": "INFO", + "message": f"Soft restarting {uuid} ({self.jail})" + }, + _callback=self.callback, + silent=self.silent) + + stop_cmd = [ + "setfib", exec_fib, "jexec", f"ioc-{uuid.replace('.', '_')}" + ] + exec_stop + su.Popen(stop_cmd, stdout=su.PIPE, stderr=su.PIPE).communicate() + + su.Popen(["pkill", "-j", jid]).communicate() + start_cmd = [ + "setfib", exec_fib, "jexec", f"ioc-{uuid.replace('.', '_')}" + ] + exec_start + su.Popen(start_cmd, stdout=su.PIPE, stderr=su.PIPE).communicate() + ioc_json.IOCJson(path, silent=True).json_set_value( + f"last_started={datetime.datetime.utcnow().strftime('%F %T')}") + else: + ioc_common.logit( + { + "level": "ERROR", + "message": f"{self.jail} is not running!" + }, + _callback=self.callback, + silent=self.silent) + + def start(self, jail=None, ignore_exception=False, used_ports=None): + """Checks jails type and existence, then starts the jail""" + if self.rc or self._all: + if not jail: + self.__jail_order__("start", ignore_exception=ignore_exception) + else: + uuid, path = self.__check_jail_existence__() + conf = ioc_json.IOCJson(path, silent=self.silent).json_get_value( + 'all') + release = conf["release"] + + if release != "EMPTY": + release = float(release.rsplit("-", 1)[0].rsplit("-", 1)[0]) + ioc_common.check_release_newer(release, major_only=True) + + err, msg = self.__check_jail_type__(conf["type"], uuid) + depends = conf["depends"].split() + + if not err: + for depend in depends: + if depend != "none": + try: + self.jail = depend + _is_depend = self.is_depend + self.is_depend = True + self.start(depend) + except ioc_exceptions.JailRunning: + pass + finally: + self.is_depend = _is_depend + + ioc_start.IOCStart( + uuid, + path, + silent=self.silent, + callback=self.callback, + is_depend=self.is_depend, + suppress_exception=ignore_exception, + used_ports=used_ports, + ) + + return False, None + else: + if jail: + return err, msg + else: + ioc_common.logit( + { + 'level': 'ERROR', + 'message': msg + }, + _callback=self.callback, silent=self.silent + ) + exit(1) + + def stop(self, jail=None, force=False, ignore_exception=False): + """Stops the jail.""" + + if self.rc or self._all: + if not jail: + self.__jail_order__("stop", ignore_exception=ignore_exception) + else: + uuid, path = self.__check_jail_existence__() + ioc_stop.IOCStop( + uuid, path, silent=self.silent, + force=force, suppress_exception=ignore_exception + ) + + def update_all(self, pkgs=False): + """Runs update for all jails""" + self._all = False + for jail in self.jails: + self.jail = jail + self.update(pkgs) + + def update(self, pkgs=False): + """Updates a jail to the latest patchset.""" + if self._all: + self.update_all(pkgs) + return + + uuid, path = self.__check_jail_existence__() + conf = ioc_json.IOCJson( + path, silent=self.silent, stop=True).json_get_value('all') + freebsd_version = ioc_common.checkoutput(["freebsd-version"]) + status, jid = self.list("jid", uuid=uuid) + started = False + _release = conf["release"].rsplit("-", 1)[0] + release = _release if "-RELEASE" in _release else conf["release"] + _silent = self.silent + jail_type = conf["type"] + updateable = True if jail_type in ( + "jail", "clonejail", "pluginv2") else False + + if updateable: + date = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S") + self.snapshot( + f'ioc_update_{conf["release"]}_{date}' + ) + + if not status: + self.silent = True + self.start() + status, jid = self.list("jid", uuid=uuid) + started = True + self.silent = _silent + elif conf["type"] == "basejail": + ioc_common.logit( + { + "level": + "EXCEPTION", + "message": + "Please run \"iocage migrate\" before trying" + f" to update {uuid}" + }) + elif conf["type"] == "template": + ioc_common.logit( + { + "level": + "EXCEPTION", + "message": + "Please convert back to a jail before trying" + f" to update {uuid}" + }) + else: + ioc_common.logit( + { + "level": "EXCEPTION", + "message": f"{conf['type']} is not a supported jail type." + }) + + if "HBSD" in freebsd_version: + su.Popen(["hbsd-update", "-j", jid]).communicate() + + if started: + self.silent = True + self.stop() + self.silent = _silent + else: + if pkgs and not (jail_type in ('plugin', 'pluginv2')): + # Let's update pkg repos first + ioc_common.logit({ + 'level': 'INFO', + 'message': 'Updating pkgs...' + }) + pkg_update = su.run( + ['pkg-static', '-j', jid, 'update', '-q', '-f'], + stdout=su.PIPE, stderr=su.STDOUT + ) + if pkg_update.returncode: + ioc_common.logit({ + 'level': 'EXCEPTION', + 'message': 'Failed to update pkg repositories.' + }) + else: + ioc_common.logit({ + 'level': 'INFO', + 'message': 'Updated pkg repositories successfully.' + }) + # This will run pkg upgrade now + ioc_create.IOCCreate( + self.jail, '', 0, pkglist=[], + silent=True, callback=self.callback + ).create_install_packages(self.jail, path, repo='') + + ioc_common.logit({ + 'level': 'INFO', + 'message': 'Upgraded pkgs successfully.' + }) + + if jail_type == "pluginv2" or jail_type == "plugin": + # TODO: Warn about erasing all pkgs + ioc_common.logit({ + 'level': 'INFO', + 'message': 'Updating plugin...' + }) + ioc_plugin.IOCPlugin( + jail=uuid, + plugin=conf['plugin_name'], + git_repository=conf['plugin_repository'], + callback=self.callback + ).update(jid) + ioc_common.logit({ + 'level': 'INFO', + 'message': 'Updated plugin successfully.' + }) + + # Jail updates should always happen + ioc_common.logit({ + 'level': 'INFO', + 'message': 'Updating jail...' + }) + + is_basejail = ioc_common.check_truthy(conf['basejail']) + params = [] if is_basejail else [True, uuid] + try: + ioc_fetch.IOCFetch( + release, + callback=self.callback + ).fetch_update(*params) + finally: + if not started and jail_type == 'pluginv2': + silent = self.silent + self.silent = True + self.restart() + self.silent = silent + + ioc_common.logit({ + 'level': 'INFO', + 'message': 'Updated jail successfully.' + }) + + if started: + self.silent = True + self.stop() + self.silent = _silent + + message = f"\n{uuid} updates have been applied successfully." + ioc_common.logit( + { + "level": "INFO", + "message": message + }, + _callback=self.callback, + silent=self.silent) + + def upgrade_all(self, release): + """Runs upgrade for all jails""" + self._all = False + for jail in self.jails: + self.jail = jail + self.upgrade(release) + + def upgrade(self, release): + if self._all: + self.upgrade_all(release) + return + + if release is not None: + _release = release.rsplit("-", 1)[0].rsplit("-", 1)[0] + ioc_common.check_release_newer(_release, major_only=True) + + uuid, path = self.__check_jail_existence__() + root_path = f"{path}/root" + status, jid = self.list("jid", uuid=uuid) + conf = ioc_json.IOCJson(path).json_get_value('all') + + if release is None and conf["type"] != "pluginv2": + ioc_common.logit({ + "level": "EXCEPTION", + "message": "Target RELEASE is required to upgrade." + }, + _callback=self.callback) + + jail_release = conf["release"] + + if conf["type"] != "pluginv2": + if release in jail_release: + ioc_common.logit( + { + "level": "EXCEPTION", + "message": + f"Jail: {uuid} is already at version {release}!" + }, + _callback=self.callback) + + started = False + basejail = False + plugin = False + + if conf["release"] == "EMPTY": + ioc_common.logit( + { + "level": "EXCEPTION", + "message": "Upgrading is not supported for empty jails." + }, + _callback=self.callback) + + if conf["type"] == "jail": + if not status: + ioc_start.IOCStart(uuid, path, silent=True) + started = True + + if ioc_common.check_truthy(conf['basejail']): + new_release = ioc_upgrade.IOCUpgrade( + release, + root_path, + callback=self.callback + ).upgrade_basejail() + basejail = True + else: + new_release = ioc_upgrade.IOCUpgrade( + release, + root_path, + callback=self.callback + ).upgrade_jail() + elif conf["type"] == "basejail": + ioc_common.logit( + { + "level": + "EXCEPTION", + "message": + "Please run \"iocage migrate\" before trying" + f" to upgrade {uuid}" + }, + _callback=self.callback) + elif conf["type"] == "template": + ioc_common.logit( + { + "level": + "EXCEPTION", + "message": + "Please convert back to a jail before trying" + f" to upgrade {uuid}" + }, + _callback=self.callback) + elif conf["type"] == "pluginv2": + if not status: + ioc_start.IOCStart(uuid, path, silent=True) + started = True + + status, jid = self.list('jid', uuid=uuid) + new_release = ioc_plugin.IOCPlugin( + jail=uuid, + plugin=conf['plugin_name'], + git_repository=conf['plugin_repository'], + callback=self.callback + ).upgrade(jid) + plugin = True + else: + ioc_common.logit( + { + "level": "EXCEPTION", + "message": f"{conf['type']} is not a supported jail type." + }, + _callback=self.callback) + + if started: + _silent = self.silent + self.silent = True + self.stop() + self.silent = _silent + + if basejail: + _date = datetime.datetime.utcnow().strftime("%F") + msg = f"""\ +\n{uuid} successfully upgraded from {jail_release} to {new_release}! +Please reboot the jail and inspect. +Remove the snapshot: ioc_upgrade_{_date} if everything is OK +""" + elif plugin: + msg = f"\n{uuid} successfully upgraded!" + else: + msg = f"\n{uuid} successfully upgraded from" \ + f" {jail_release} to {new_release}!" + + ioc_common.logit( + { + 'level': 'INFO', + 'message': msg + }, + _callback=self.callback + ) + + def debug(self, directory): + if directory is None: + directory = f'{self.iocroot}/debug' + + ioc_debug.IOCDebug(directory).run_debug() + + def snap_remove(self, snapshot): + """Removes user supplied snapshot from jail""" + uuid, path = self.__check_jail_existence__() + conf = ioc_json.IOCJson(path, silent=self.silent).json_get_value('all') + + if ioc_common.check_truthy(conf['template']): + target = f'{self.pool}/iocage/templates/{uuid}@{snapshot}' + else: + target = f'{self.pool}/iocage/jails/{uuid}@{snapshot}' + + # Let's verify target exists and then destroy it, else log it + snapshot = Snapshot(target) + + if not snapshot: + ioc_common.logit({ + 'level': 'EXCEPTION', + 'message': f'Snapshot: {target} not found!' + }) + else: + snapshot.destroy(recursive=True) + + ioc_common.logit( + { + 'level': 'INFO', + 'message': f'Snapshot: {target} destroyed' + }, + _callback=self.callback, silent=self.silent + ) diff --git a/jails/config/common/current-src.bzip2 b/jails/config/common/current-src.bzip2 new file mode 100644 index 0000000000000000000000000000000000000000..f88f268556ce23ed591e33bb5868b25a72eea365 GIT binary patch literal 285505 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
    91bCo8)$#hCavE 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 z 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

    MxcJ(es&MgbT%lqT9U({A0Nlo<&Vo4=VxIFL1} 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 literal 0 HcmV?d00001 diff --git a/jails/config/vm/cvm-b.sh b/jails/config/vm/cvm-b.sh index 3804e0b..c19edec 100755 --- a/jails/config/vm/cvm-b.sh +++ b/jails/config/vm/cvm-b.sh @@ -16,7 +16,7 @@ bhyvectl --destroy --vm=cvm-b while true do -bhyve -c 4 -m 16G -A -H -P \ +bhyve -c 8 -m 32G -A -H -P \ -s 0,hostbridge \ -s 3,ahci-cd \ -s 4,virtio-blk,/dev/zvol/ship/raw/cvm-b \ diff --git a/jails/config/vm/freebsd.sh b/jails/config/vm/freebsd.sh index 35e7287..54eefdf 100755 --- a/jails/config/vm/freebsd.sh +++ b/jails/config/vm/freebsd.sh @@ -19,8 +19,13 @@ do bhyve -c 2 -m 4G -A -H -P \ -s 0,hostbridge \ -s 3,ahci-cd \ --s 4,virtio-blk,/dev/zvol/ship/raw/freebsd \ --s 5,virtio-net,tap83,mac=00:0A:0B:0C:0D:83 \ +-s 4,virtio-blk,/dev/zvol/ship/raw/freebsd_1 \ +-s 5,virtio-blk,/dev/zvol/ship/raw/freebsd_2 \ +-s 6,virtio-blk,/dev/zvol/ship/raw/freebsd_z1 \ +-s 7,virtio-blk,/dev/zvol/ship/raw/freebsd_z2 \ +-s 8,virtio-blk,/dev/zvol/ship/raw/freebsd_z3 \ +-s 9,virtio-blk,/dev/zvol/ship/raw/freebsd \ +-s 10,virtio-net,tap83,mac=00:0A:0B:0C:0D:83 \ -s 29,fbuf,tcp=0.0.0.0:5983,w=1600,h=900 \ -s 30,xhci,tablet \ -s 31,lpc -l com1,/dev/nmdm83A \ @@ -47,7 +52,7 @@ done exit $? #-s 3,ahci-cd \ -#-s 3,ahci-cd,/mnt/freebsd/FreeBSD-12.1-RELEASE-amd64-disc1.iso \ +#-s 3,ahci-cd,/mnt/freebsd/FreeBSD-12.2-RELEASE-amd64-disc1.iso \ # set boot_serial=NO # first in boot menu option 3 and then /boot/loader.conf after install @@ -58,8 +63,17 @@ exit $? #on base system: #zfs create -V 32G -o refreservation=none ship/raw/freebsd +#zfs create -V 16G -o refreservation=none ship/raw/freebsd_1 +#zfs create -V 16G -o refreservation=none ship/raw/freebsd_2 +#zfs create -V 16G -o refreservation=none ship/raw/freebsd_z1 +#zfs create -V 16G -o refreservation=none ship/raw/freebsd_z2 +#zfs create -V 16G -o refreservation=none ship/raw/freebsd_z3 # on boot #ifconfig tap83 create #ifconfig bridge1 addm tap83 up #ifconfig tap83 up #ifconfig tap83 inet6 auto_linklocal +# +#zroot mirror /dev/vtbd1 /dev/vtbd2 - created during zroot install +#zpool create -f ship /dev/vtbd2 /dev/vtbd3 /dev/vtbd4 +#zpool create -f data /dev/vtbd5 diff --git a/jails/update.sh b/jails/update.sh index 3a9ad90..081400e 100755 --- a/jails/update.sh +++ b/jails/update.sh @@ -37,8 +37,9 @@ update_jail () # iocage exec $JAIL "pkg upgrade -f -y" iocage exec $JAIL "pkg clean -ay" - iocage exec $JAIL "rm -rf /var/tmp/temproot*" - iocage exec $JAIL "mergemaster -a" +# iocage exec $JAIL "rm -rf /var/tmp/temproot*" +# iocage exec $JAIL "mergemaster -a" + iocage exec $JAIL "etcupdate -t /mnt/common/current-src.bzip2" iocage exec $JAIL "freebsd-version" @@ -48,10 +49,8 @@ update_jail () iocage fetch -U -r 12.2-RELEASE -read -p "update pkgp jail (y/N)? " RESP +read -p "update pkgp packages first (y/N)? " RESP if [ ! -z $RESP ] && [ $RESP == "y" ]; then - JAIL="pkgp" - update_jail /root/FreeBSD/jails/jails-update-pkgs.sh pkgp-only fi @@ -60,11 +59,11 @@ if [ ! -z $RESP ] && [ $RESP == "y" ]; then # for JAIL in `iocage list -h | cut -f2`; for JAIL in `jls -N | cut -d " " -f 2 | cut -d "-" -f 2- | grep -v JID | sort`; do - if [ $JAIL == "pkgp" ] || [ $JAIL == "debian" ]; then + if [ $JAIL == "test" ] || [ $JAIL == "debian" ]; then continue fi if [[ $1 == "upgrade" ]]; then - read -p "update jail $JAIL (Y/n)? " RESP + read -p "upgrade jail $JAIL (Y/n)? " RESP if [ ! -z $RESP ] && [ $RESP == "n" ]; then continue fi @@ -75,10 +74,15 @@ fi echo "update base system by running:" echo "freebsd-update fetch" +# echo "freebsd-update upgrade -r 13.0-RELEASE" echo "freebsd-update install" +# echo "pkg bootstrap -f ; pkg update ; pkg upgrade" echo "cd /usr/src; svn update; make -j8 buildkernel KERNCONF=diyIT && make -j8 installkernel KERNCONF=diyIT" +echo "etcupdate build /root/FreeBSD/jails/configs/common/current-src.bzip2" echo "reboot" echo "pkg-static upgrade -f" -echo "mergemaster" +#echo "rm -rf /var/tmp/temproot*" +#echo "mergemaster -a" +echo "etcupdate -t /mnt/common/current-src.bzip2" echo "/root/FreeBSD/scripts/zfs-prune-snapshots -vn -p 'ioc_update' 1d | grep removing" diff --git a/scripts/fan.py b/scripts/fan.py new file mode 100644 index 0000000..46ed243 --- /dev/null +++ b/scripts/fan.py @@ -0,0 +1,14 @@ +# pkgk install py37-pysnmp + +from pysnmp import hlapi + + +def get(target, oids, credentials, port=161, engine=hlapi.SnmpEngine(), context=hlapi.ContextData()): + handler = hlapi.getCmd( + engine, + credentials, + hlapi.UdpTransportTarget((target, port)), + context, + *construct_object_types(oids) + ) + return fetch(handler, 1)[0]