Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Frey let's you launch web infrastructure with a single command. It uses Ansible & Hashicorp's Terraform to to the heavy lifting.
We use nearly all Hashicorp products in production and absolutely love it. We will be looking to utilize Otto as well.
However, we also felt the needed a tool that offered more in the way of provisioning tailor-made setups.
Hashicorp acknowledges that Otto will be able to serve 99% of the common use-cases. Frey aims to serve the remaining 1%.
When compared to Hashicorp's recently launched Otto, which also uses Terraform under the hood, Frey fills a void for people that feel:
It's possible that over time, enough of these differences will dissolve so that we can dissolve Frey as well.
Frey has some opinionated and magical parts, but less so than Otto.
You can define all of this in a single Freyfile
. A Frefile is a recipe written in TOML.
Alternatively you can point Frey to your existing
Terraform .tf
and Ansible .yml
for creating web infrastructure.
What Frey is not good at:
npm install --global frey
Frey must be run in the root of the project that you want to set up infra for.
All infra description is supposed to be saved in ./frey/*
, but this can be configured.
There needs to be a ./.git
dir preset relative from your current directory.
Keeping infra recipes together with the app is convenient and allows both to move at the same pace. If you revert to 2 years ago, you can also inspect the matching infra from that time.
cd ~/code/myapp
frey
Frey works by walking down a chain of commands. You can 'enter' the chain at any step, and Frey by default will complete the following steps. The commands are as follows
prepare : "Install prerequisites"
refresh : "Refreshes current infra state and saves to terraform.tfstate"
validate : "Checks your docs"
plan : "Shows infra changes and saves in an executable plan"
backup : "Backs up server state"
launch : "Launches virtual machines at a provider"
install : "Runs Ansible to install software packages & configuration templates"
deploy : "Upload your own application(s)"
restart : "Restart your own application(s) and its dependencies"
show : "Displays active platform"
For so you'd type frey deploy
, Frey would deploy your app, restart it, and show
you the status.
All commands can be ran with --bail
if you do not want to run the chain of commands.
There are also a few commands that do not belong to the chain, and are hence auto-bailing these are:
restore : "Restore latest state backup"
remote : "Execute a remote command - or opens console"
facts : "Show Ansible facts"
If you think it's better to keep the infra recipes outside of your own app code
for security reasons or similar, we recommend that alongside your app
repo, you create an
infra-app
repo, where you'll keep Frey's recipes in. We recommend you then keep the recipes
in the root, and run Frey with --recipe-dir .
:
cd ~/code/infra-myapp
frey --recipe-dir .
Also possible, via:
cd ~/code/infra-myapp
frey --recipe-dir ./envs/production
Frey uses Terraform and Ansible to do the heavy lifting.
frey completion >> ~/.bash_profile
source ~/.bash_profile
frey completion >> ~/.bashrc
source ~/.bashrc
For now, we only support
Frey is intended to service many use-cases and we'll work on removing some of these limitations as we go.
_gatherTerraformArgs
in a central place (command? terraform?). No: abstract both Terraform and Ansible_transform
in a central place (utils?)frey compile
that's prefixed to any chain, so you can trust your updates are present in residu, and have its configuration available too (ssh user for instance)frey install
you must trust that at least the Ansible files are re-compiledinit
for local prepare. Such as converting Freyfile to residu. Should be prefixed to chain of commands. Then a single install can benefit from it (remove the refresh
from that acceptance test) and validation can be ran against it/theminstall
./Freyfile.toml
? This means recipeDir defaults to .
, and .git check should traverse upwards 'indefinitely'FAQs
Automated infrastructure CLI
The npm package frey receives a total of 0 weekly downloads. As such, frey popularity was classified as not popular.
We found that frey demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.