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'**
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.
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.
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”?
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?
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.
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.
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 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.
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.