{"id":18419698,"url":"https://github.com/teradata/stackiup","last_synced_at":"2025-10-26T16:15:28.313Z","repository":{"id":140554675,"uuid":"64797664","full_name":"Teradata/StackiUp","owner":"Teradata","description":"A collection of files to create a complete virtual Stacki environment, based around common devops tools such as Packer, Vagrant and VirtualBox.","archived":false,"fork":false,"pushed_at":"2017-09-13T23:46:57.000Z","size":25,"stargazers_count":7,"open_issues_count":5,"forks_count":6,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-04-07T13:37:24.302Z","etag":null,"topics":["stacki"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Teradata.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-08-02T22:53:31.000Z","updated_at":"2020-08-21T04:43:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"5537690d-596b-4ba0-b0c6-cb9b69e8d2bc","html_url":"https://github.com/Teradata/StackiUp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Teradata/StackiUp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Teradata%2FStackiUp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Teradata%2FStackiUp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Teradata%2FStackiUp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Teradata%2FStackiUp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Teradata","download_url":"https://codeload.github.com/Teradata/StackiUp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Teradata%2FStackiUp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281132404,"owners_count":26448996,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-26T02:00:06.575Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["stacki"],"created_at":"2024-11-06T04:17:56.759Z","updated_at":"2025-10-26T16:15:28.307Z","avatar_url":"https://github.com/Teradata.png","language":"Shell","readme":"# StackiUp\n\nStackiUp is a collection of files to create a complete virtual Stacki environment, based around common devops tools such as Packer, Vagrant and VirtualBox.\n\nStacki has greater software requirements than typical Vagrant boxes offer, and as such you're best off using our purpose-built Vagrant box available on S3, as opposed to using one of the popular ones found online.  Building your own Vagrant box from our template should be possible in the next release of Stacki -- see the FAQ at the bottom.\n\n\u003e On Dependencies: If you don't have Vagrant and VirtualBox installed, you'll need these, of course.  On MacOSX, homebrew has vagrant, otherwise you can find it at [VagrantUp.com](http://vagrantup.com).\n\nSee the end of the document for known issues, TODO, advanced topics, etc.\n\n## Vagrant\nBefore you can use our Vagrant box, you'll need to download and add it to Vagrant!  Vagrant can do this all in one command:\n\n    $ vagrant box add http://stacki.s3.amazonaws.com/public/vm/vagrant/stackibox.json\n\nIt's a sizeable download (~2.5 GB), but it's super worth it, I promise.  Anyway, go grab a coffee.\n\n    $ vagrant up\n\nThis will take a minute (but not much more than that) as it builds the VM around the box we created.\n\nBy default Vagrant machines run in headless mode to stay out of your way.  Vagrant also automatically sets up a number of things on the guest VM, including the ssh keys and port forwarding.\n\nOnce it comes back up, `vagrant ssh` will bring you into your new virtual Stacki Frontend machine.  If you're not familiar with Vagrant, take a peek at `/vagrant/` inside the VM and you'll see what has been our working directory up until now.  This is a shared guest folder Vagrant has set up to allow you to easily interact with files on both the host and the VM.  This will come in handy in a minute.\n\n## VirtualBox\nIf you're in the VM environment, `exit` to get back to our host machine.  Looking around our working directory, you'll see a script called `create_backend_machines.sh`.  Run that, with some number of VM's you'd like to create (keeping in mind the physical limitations of your hardware!).\n\n    $ create_backend_machines.sh 3\n\nThis wraps around VirtualBox's `VBoxManage` CLI utility, pokes inside our shiny new Vagrant VM, and creates *N* VM's, in the same virtual network as our Frontend, all set and ready to go.  As an added bonus, it also creates a hostfile kicksheet (`./hostfile.csv`) for you, based on those VM's.\n\n    $ cat hostfile.csv \n    Name,Appliance,Rack,Rank,IP,MAC,Interface,Network,Default\n    backend-0,backend,0,0,192.168.42.100,08:00:27:97:2D:56,eth0,private,True\n    backend-1,backend,0,1,192.168.42.101,08:00:27:1A:C5:C3,eth0,private,True\n    backend-2,backend,0,2,192.168.42.102,08:00:27:27:D9:90,eth0,private,True\n\nIf you haven't edited any files along the way, by default (as of this writing!) our Vagrant-installed Frontend sits at _192.168.42.10_.\n\n\u003e PS: If you don't use this script to make your backend VM's, be sure to check the Stacki wiki on Github for the minimum \"hardware\" requirements for backend nodes!  Mysterious and puzzling things can happen if you try to make backend nodes too small.\n\n## Stacki\nGo back into the Vagrant instance:\n\n    $ vagrant ssh\n\nRemember the shared guest folder, `/vagrant/`?  Guess what, since we created the hostfile in the current working directory, our `hostfile.csv` kicksheet is accessible in our VM too.  From here, we can load the hostfile into Stacki.  StackiUp helpfully created a vagrant user, and gave them sudo permissions inside the VM.\n\n\u003e It's worth mentioning that if needed the root password in our StackiUp repo defaults to 'password'.  See the FAQ about changing it.\n\n    $ sudo -i stack load hostfile file=/vagrant/hostfile.csv\n    $ stack list host\n    HOST            RACK RANK CPUS APPLIANCE BOX     ENVIRONMENT RUNACTION INSTALLACTION\n    stackifrontend: 0    0    1    frontend  default ----------- os        install      \n    backend-0:      0    0    1    backend   default ----------- os        install      \n    backend-1:      0    1    1    backend   default ----------- os        install      \n    backend-2:      0    2    1    backend   default ----------- os        install      \n\nOur Vagrant VM's peers are now added to Stacki's database, and we can manage them from inside our VM.  Set them to install:\n\n    $ sudo -i stack set host attr backend attr=nukedisks value=true\n    $ sudo -i stack set host boot backend action=install\n\n... and start them up in Virtualbox on your host machine.\n\nAfter a few minutes, you'll have an additional _N_ backend nodes deployed.  Congratulations, you've got a working Stacki install!\n\nNow you're free to go find (or create!) additional Stacki Pallets, to allow for more complex deployments.  For example, you can add the CentOS Everything ISO as a pallet to give your backend nodes access to all of the packages available there.\n\nWhen you're tired of it (or you broke something -- hey, it happens), you can exit out of the Vagrant VM, and then issue `vagrant destroy`, knowing that you can `vagrant up` again at any time.\n\n## What Else?\n\n### Uses (aka, why?)\n\n__Kicking the tires__.  Stacki-as-open-source is fairly new, so many people don't yet know what you can do with it.  StackiUp gives you a chance to play with Stacki from the convenience of your (admittedly somewhat beefy) laptop.\n\n__Automation of testing__.  With StackiUp, a configuration management tool such as Ansible, and a little bit of scripting, you should be able to test infrastructure changes.  Internally, Stacki developers should be able to pair the above with a Continuous Integration tool to help speed up some of our pre-release integration tests, which means more Stacki for you, Dear Reader.\n\n__Ease of development__.  Obviously helpful more for developers, but the ability to skip the install saves time.  Vagrant also provides several time-saving features.  It runs VMs in headless mode by default.  It uses SSH keys for logging into the VM, forwards ports, and shares folders between host and VM.  These features can be easily extended in the Vagrantfile, for example if you need an additional port forwarded, or other shared folders.\n\n__Running your whole enterprise infrastructure__.  Are you crazy?\n\n\n### Limitations\n\n* Currently, StackiUp focuses only on VirtualBox.  As such, it borrows some of that tool's own limitations (you can't have nested VM's, for example).  Other hypervisors should be possible (Packer and Vagrant support several), but are unplanned.\n* StackiUp relies on an unreleased development version of StackiOS because it requires a modification to the Anaconda installer.  The changes are in upstream Stacki already and will be in the next release.\n\n### TODO\n\n* Release the next version of Stacki so people can spin up their own Vagrant boxes using Packer!  In the meantime, you can still use our lovingly crafted Vagrant box by pointing vagrant at our catalog file: [stackibox.json](http://stacki.s3.amazonaws.com/public/vm/vagrant/stackibox.json)\n\n### FAQ\n\n* \"My frontend/backend nodes don't make it through the install.\"\n\nRemember that Stacki is a tool designed for provisioning nodes on a *very* large scale.  It is possible you've found a bug, but before letting us know, please be sure to check the minimum hardware requirements for [Frontend](https://github.com/StackIQ/stacki/wiki/Frontend-Installation#requirements) and [Backend](https://github.com/StackIQ/stacki/wiki/Backend-Installation#requirements) VM's all meet them.\n\n* \"I want to customize the StackiUp install to use a different network.\"\n\nSee the above TODO note about changes required to the installer.  When the next version of Stacki is released, you'll be able to use the `stack_adder.py` script to set whatever modifications you need prior to running Packer.\n\n* \"I want to change the password!\"\n\nYou can change the password once the Vagrant VM is up and running.  Log in to the VM and do `sudo -i stack set password`.\n\nOtherwise, see the previous FAQ about changing networking.  When the next Stacki release is available, changing the password in site.attrs will work but will also require changing the password referenced in `./stackios.json`.\n\n* \"Can you add SUPER\\_IMPORTANT\\_FEATURE?\"\n\nI dunno, probably, but probably not right away.  But, once the next version of StackiOS is released all the bits are out there, so if you have a specific need and a patch that looks good, we can probably merge it.\n\n* The Vagrant Stacki Frontend comes up, and everything looks right, but my backend nodes won't DHCP boot.\n\nStacki Frontends run their own DHCP server, but VirtualBox tries do to this as well.  You can run `VBoxManage list hostonlyifs` and check that the DHCP server is disabled for that virtual network.\n\nHowever, it's possible VBox didn't kill its server and is *still running a DHCP server on that network anyway*.  Running `ps aux | grep -i vb | grep -i dhcp` should show any DHCP processes that VBox might still be running.  I found a running a DHCP server on vboxnet0 serving in the range 192.168.56.0 (which was weird, as I changed vboxnet0 to 192.168.42.0).  At any rate, killing that process and rebooting my backend nodes allowed them to boot.\n\n* \"Something else isn't working.\"\n\nAgain, totally possible it's a bug in StackiUp (there's a lot of moving parts here), but at the time of this writing, the most recent versions of VirtualBox (5.1) and Vagrant (1.8.5) both have significant regressions for this workflow.  If you run into issues (particularly with networking/ssh), drop back to VBox 5.0.x and Vagrant 1.8.4, if at all possible.  The issues in Vagrant at least are supposed to be fixed in 1.8.6.  For what it's worth, this project was developed on MacOSX 11.4, with VBox 5.0.18 and Vagrant 1.8.1.\n\n\u003e [Vagrant #7648](https://github.com/mitchellh/vagrant/issues/7648)\n\n\u003e [Vagrant #7667](https://github.com/mitchellh/vagrant/issues/7667)\n\n\u003e [VBox #15705](https://www.virtualbox.org/ticket/15705)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteradata%2Fstackiup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteradata%2Fstackiup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteradata%2Fstackiup/lists"}