Unable to create 13.4 jail

I noticed that 13.4 became available in the TrueNAS GUI für jail creation.

When i try to create a new 13.4 based jail, I get an error-message:

FAILED

[EFAULT] extractall() got an unexpected keyword argument ‘filter’

Above error comes the first time when I try to create.

All subsequent tries:

FileNotFoundError: [Errno 2] No such file or directory: ‘/mnt/SSD/iocage/releases/13.4-RELEASE/root/bin/freebsd-version’

When I delete the 13.4 RELEASE dataset, it jumps back to the first error.

Any idea/advice?

Thanks

You used iocage fetch before you tried to create a “basejail” based on FreeBSD 13.4-RELEASE?

I didn’t, but this is done by TrueNAS automatically. If I execute “iocage fetch” for 13.4-RELEASE manually, I get the same error-message.

root@fractal:~ # iocage fetch
[0] 13.3-RELEASE
[1] 13.4-RELEASE
[2] 14.1-RELEASE
[3] 14.2-RELEASE

Type the number of the desired RELEASE
Press [Enter] to fetch the default selection: (13.1-RELEASE)
Type EXIT to quit: 1
Fetching: 13.4-RELEASE

Extracting: base.txz...
Traceback (most recent call last):
  File "/usr/local/bin/iocage", line 10, in <module>
    sys.exit(cli())
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1128, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1053, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1659, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1395, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/iocage_cli/fetch.py", line 181, in cli
    ioc.IOCage().fetch(**kwargs)
  File "/usr/local/lib/python3.9/site-packages/iocage_lib/iocage.py", line 1105, in fetch
    ioc_fetch.IOCFetch(
  File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_fetch.py", line 215, in fetch_release
    rel = self.fetch_http_release(eol, _list=_list)
  File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_fetch.py", line 446, in fetch_http_release
    missing_files = self.__fetch_check__(self.files)
  File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_fetch.py", line 644, in __fetch_check__
    self.fetch_extract(f)
  File "/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_fetch.py", line 821, in fetch_extract
    f.extractall(dest, members=member, filter='tar')
**TypeError: extractall() got an unexpected keyword argument 'filter'**

Are you on TN 13.0 or 13.3? You cannot run 13.4 jails on TN 13.0. You need to upgrade to the latest version.

Hey?! Me too. I’m on 13.3 and iocage will not create a new 13.4 jail.

Currently my TN is just a NFS server but everyday I feel more and more like just putting FreeBSD on the thing; it would be easier to maintain. I’m also half tempted to just try and ditch iocage and setup a jail using the stock jail.conf method to see if that works.

Stock FreeBSD and pkg install iocage works just great. While iocage has not seen much activity and updates lately, it’s more or less feature complete. We manage 4 data centres with over 1000 jails with it.

While bastille is a more actively maintained and feature rich jail manager, we are looking into falling back to “jail.conf” for a complete refactor of our software.

If you are interested there is a new kid in town named “jailer” that just provides a nicer CLI wrapper around jail.conf. So it does not add any functionality, just writes jail.conf files, and relies on the OS to do all the work, yet aims to provide a convenient command line experience similar to iocage and bastille. I will definitely look into that.

1 Like

Jailer is nice but the jail.conf method used is pre FreeBSD 14 style. I looked at briefly but stopped reading at the jail.conf file methodology discovery.

If you want more modern jail.conf style jails (I recommend them) and you want to keep more organized configurations, or offer some semblance of sane setup (while promoting code reuse), you can use the scripts I made. I recommend at least a trial run or adding mine to your “to try list”; although I didn’t intend to create a “jail manager” it is very nice because it just “sets up the jail” (i.e., mine doesn’t try to do ZFS snapshots, download userland, or any of that stuff, it just does the jail and the jail.conf file)–more of the BSD mindset. My makefile works and you can install and uninstall with zero problems. I also provide a man page.

However, I just noticed that the GitHub repo is a few commits behind my main repository main branch so I’ll have to push those to GitHub. The latest changes I made allow for an option to install packages from the host instead of from within the jail. I also made a quick wrapper script for the jls command which will show IP address for VNET jails (and probably a few other cool features).

I am thinking (read: contemplating) about re writing these scripts in C to possibly move towards “a pkg plugin” type thing or possibly daemonizing the utility. I am also thinking about refactoring, or adding an option for, the setup portion of my concept into using rc.d instead of running the setup scripts outright.

1 Like

Good to know, thanks!

I’m on TrueNAS-13.0-U6.4, which is train
TrueNAS-13.0-STABLE - Release Train for TrueNAS 13.0 [release].

On CLI I get
root@fractal:~ # uname -a
FreeBSD fractal.fp.on.at 13.1-RELEASE-p9 FreeBSD 13.1-RELEASE-p9 n245432-de4561397a1 TRUENAS amd64

AFAIK that’s the latest stable version (for CORE). Am I getting something wrong? Please advice if I should change the train. Do you perhaps mean “EletricEel 24.10”?

Thank you!

The latest stable release is 13.3. You need to manually download and install.

1 Like

There is a community-provided train now for updated jails etc? I completely missed that. Thanks. I will look into that tonight. If I apply the manual update, are later updates then again possible via GUI? Or will I have to apply manual updates from now on? Who exactly is providing the images? Is there a security-risk?

This is not community provided but the official release by iX. You will be able to update via UI after one manual installation.

They did not want to publish it as a regular train “because enterprise customers” or some such. :man_shrugging:

1 Like

13.0-Ux is what’s used in the Enterprise version.
13.3 is a “courtesy release” for home users with jails, so they could update their jails one last time to FreeBSD 13.4. It is not ported to Enterprise because Enterprise users simply do not use jails on their storage; they have application servers for that.

Understood, thank you for elaboration.

Why “update their jails one last time” - will this be the last update for CORE? Good-bye FreeBSD?

I know we’re not supposed to talk politics on these forums, but did you see the 2024 landslide results of the TrueNAS election?

Yes. Basically some security updates, if critical enough, but that’s it.

Oh! That makes me sad. I used FreeNAS/TrueNAS for many years and in that time “perfected” my environment with multiple customized jails with lots of functionality. If this is not being mantained any more, I will of course have to move on as well and search for a different solution. I tried TrueNAS SCALE for a short while, but I didn’t succeed in its container-implementation (although docker itself is great). I will probably move on to a simple Linux server with docker. What will you do?

Newest version of SCALE has already re-based its containers on Docker, away from K3s. Next version in April includes LXC support, if you are more comfortable in a “jailed” like environment.

1 Like

Just so you know: I’m both afraid of and excited for people to try my script. I don’t think it will get mainstream adoption because my tool requires people to actually organize (change values like “name”, “IP”, etc in a config file) their jail deployments and setup scripts (but there are many setup scripts available for people to pick from (iX had a bunch for iocage, Victor has a bunch, BSD Pot has them, etc.). However, the logical next step for me is to create a ports like collection for people to download setup scripts (gitupd makes that step about as easy as it gets for end users and/or automation).

I’m going stock FreeBSD myself.

I’m just a “simple jail” type of guy but if you like that docker/container/image type workflow you can still have your perfected BSD environment and a docker like thing; some jail managers are “not really jail managers”. Look into BSD Pot which is actually really about containers/images. Install FreeBSD, move your ‘perfected environment stuff’ and setup up a tool like Nomad with Pot for deployments. Here is a link to pot’s flavors: potluck.

1 Like

Bastille already has a method to install pkgs using the hosts pkg command.

I’ve recently started work on bastille perfecting and optimizing, plus adding features.

I essentially ah e my own fork right now that’s pretty streamlined.

Bastille does just what you mentioned above @John by creating simple jail.conf files, and adding/removing stuff from it based on the commands you give it.