| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Stacki enables you to create a box which is a composition of pallets and (optionally) carts.
The contents of a box is the entire set of RPMs and configuration scripts that are available to a backend host when it installs.
The default box consists of the stacki and os pallets (and no carts). The os pallet is a stripped down version of CentOS.
These two pallets are the minimum pallets required to install a backend host.
Backend hosts are assigned the default box automatically.
Different backend hosts can be assigned to different boxes which gives you a great deal of latitude when deciding what software stacks should go on which backend hosts.
A few examples of the utility of boxes:
Adding a different OS If you want the basic functionality Stacki provides but also have to add RHEL or Oracle or something wacky like Scientific Linux, create a new box and the stacki pallet plus the new OS pallet. Backend nodes assigned to the new box will be installed with RHEL (Or Oracle or you get the idea.)
Maintaining different versions of the OS: If you want CentOS 7.3 on one set of backend hosts and CentOS 7.4 on another set of backend hosts to test an upgrade. You can download the 7.4 CentOS ISOs, add them to the frontend (with stack add pallet), create a new box with the stacki and CentOS 7.4 pallets, then assign backend hosts to the new box.
Maintaining updates: Pallets can be created by mirroring any publicly available repo (or subscribed repo if using RHEL). Adding an updates pallet to any box will make the updated RPMs available to hosts via yum/zypper/apt-get.
Maintaining dev/test/production environments: Again, having created dev, test, and production boxes with the appropriate pallets, assign machines to each of those boxes. Install/reinstall the machines. When you want to promote machines to a new environment, reassign the machine's box and reinstall.
This example will create a new box that incorporates RHEL 7.4 instead of CentOS 7.4. Then we'll assign machines to the new box.
List pallets and boxes:
# stack list pallet NAME VERSION RELEASE ARCH OS BOXES os 7.4_20171128 redhat7 x86_64 redhat stacki 5.0_20171128_b0ed4e3 redhat7 x86_64 redhat default CentOS 7 redhat7 x86_64 redhat default
stack list pallet shows the pallets available and stack list box shows which box contains which pallet:
[root@stacki-50 isos]# stack list box NAME OS PALLETS CARTS default redhat stacki-5.0_20171128_b0ed4e3-redhat7 CentOS-7-redhat7
In the above output, the default box contains two pallets (stacki version 5.0_20171128_b0ed4e3 and CentOS version 7.4) and it contains no carts.
But we really, really want RHEL 7.4 because we like giving an 800lb gorilla money.
Add RHEL 7.4 (downloaded from your handy RHEL subscription) to the list of available pallets:
# stack add pallet rhel-server-7.4-x86_64-dvd.iso Copying RHEL 7.4-redhat7 pallet ...
And now the output of stack list pallet shows:
# stack list pallet NAME VERSION RELEASE ARCH OS BOXES os 7.4_20171128 redhat7 x86_64 redhat stacki 5.0_20171128_b0ed4e3 redhat7 x86_64 redhat default CentOS 7 redhat7 x86_64 redhat default RHEL 7.4 redhat7 x86_64 redhat
The RHEL pallet is not associated with any box.
We'll add a new box and call it rhel74:
# stack add box rhel74
(rhel74 because what happens when rhel75 comes out?)
Now stack list box shows the new box rhel74 with no pallets and no carts associated with it:
NAME OS PALLETS CARTS default redhat stacki-5.0_20171128_b0ed4e3-redhat7 CentOS-7-redhat7 rhel74 redhat ----------------------------------------------------------------------------------------
Let's associate the RHEL and stacki pallets with the rhel74 box:
# stack enable pallet stacki RHEL box=rhel74 Cleaning repos: CentOS-7-redhat7 stacki-5.0_20171128_b0ed4e3-redhat7 Cleaning up everything Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
(That stuff after the command is due to RedHat's loquaciousness problem, not Stacki's.)
List the pallets and see that stacki is associated with two boxes, and RHEL with only our default box.
[root@stacki50 doc]# stack list pallet NAME VERSION RELEASE ARCH OS BOXES os 7.4_20171128 redhat7 x86_64 redhat stacki 5.0_20171128_b0ed4e3 redhat7 x86_64 redhat default rhel74 CentOS 7 redhat7 x86_64 redhat default RHEL 7.4 redhat7 x86_64 redhat rhel74
And now stack list box shows:
# stack list box NAME OS PALLETS CARTS default redhat stacki-5.0_20171128_b0ed4e3-redhat7 CentOS-7-redhat7 rhel74 redhat stacki-5.0_20171128_b0ed4e3-redhat7 RHEL-7.4-redhat7
We see that the rhel74 box contains the RHEL and stacki pallets.
Now let's assign a backend host to the rhel74 box.
First, let's look at what the backend hosts are currently set to:
# stack list host HOST RACK RANK APPLIANCE OS BOX ENVIRONMENT OSACTION INSTALLACTION STATUS COMMENT stacki-50 0 0 frontend redhat default ----------- default default up backend-0-0 0 0 backend redhat default ----------- default console up backend-0-1 0 1 backend redhat default ----------- default console up backend-0-2 0 2 backend redhat default ----------- default console up backend-0-3 0 3 backend redhat default ----------- default console up backend-0-4 0 4 backend redhat default ----------- default console up
We see all backend hosts are associated with the default box.
Let's associate backend-0-0 through backend-0-2 to the rhel74 box:
# stack set host box backend-0-[0-2] box=rhel74
Now stack list host shows backend-0-0, backend-0-1, and backend-0-2 are associated with the rhel74 box:
# stack list host HOST RACK RANK APPLIANCE OS BOX ENVIRONMENT OSACTION INSTALLACTION STATUS COMMENT stacki-50 0 0 frontend redhat default ----------- default default up backend-0-0 0 0 backend redhat rhel74 ----------- default console up backend-0-1 0 1 backend redhat rhel74 ----------- default console up backend-0-2 0 2 backend redhat rhel74 ----------- default console up backend-0-3 0 3 backend redhat default ----------- default console up backend-0-4 0 4 backend redhat default ----------- default console up
To get those nodes onto RHEL 7.4, they need to be reinstalled. Once they are, they'll be RHEL 7.4 machines not CentOS.
So do the reinstall dance:
# stack set host boot backend-0-[0-2] action=install # stack run host backend-0-[0-2] command="reboot"
We can verify after a re-install:
# stack run host command="cat /etc/redhat-release" HOST OUTPUT backend-0-0 Red Hat Enterprise Linux Server release 7.4 (Maipo) backend-0-1 Red Hat Enterprise Linux Server release 7.4 (Maipo) backend-0-2 Red Hat Enterprise Linux Server release 7.4 (Maipo) backend-0-3 CentOS Linux release 7.4.1708 (Core) backend-0-4 CentOS Linux release 7.4.1708 (Core)
You subscribed those, right?
To remove a box, do the following:
Reset the backend nodes to a valid box:
# stack set host box backend-0-[0-2] box=default
Remove the box rhel74 and verify it is gone:
# stack remove box rhel74 # stack list box
Which shows that we only now have the default box defined:
# stack list box NAME OS PALLETS CARTS default redhat stacki-5.0_20171128_b0ed4e3-redhat7 CentOS-7-redhat7
Checkout our Google Group or our Slack Team for any support or other questions.
Want to contribute to this Wiki? Fork it and send a pull request.
| Back | FazBrowse Home | New Git URL |