All Projects → mozilla → dinobuildr

mozilla / dinobuildr

Licence: MPL-2.0 license
A macOS deployment utility developed by Mozilla IT

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to dinobuildr

Deep Learning In Production
Develop production ready deep learning code, deploy it and scale it
Stars: ✭ 216 (+730.77%)
Mutual labels:  deployment
Git Auto Deploy
Deploy your GitHub, GitLab or Bitbucket projects automatically on Git push events or web hooks
Stars: ✭ 251 (+865.38%)
Mutual labels:  deployment
release-notes
Release notes and system requirements for our various Firefoxen
Stars: ✭ 15 (-42.31%)
Mutual labels:  mozilla
Rollback
Ansible role to rollback scripting applications like PHP, Python, Ruby, etc. in a capistrano style
Stars: ✭ 230 (+784.62%)
Mutual labels:  deployment
Ecspresso
ecspresso is a deployment tool for Amazon ECS
Stars: ✭ 242 (+830.77%)
Mutual labels:  deployment
Ray
An open source framework that provides a simple, universal API for building distributed applications. Ray is packaged with RLlib, a scalable reinforcement learning library, and Tune, a scalable hyperparameter tuning library.
Stars: ✭ 18,547 (+71234.62%)
Mutual labels:  deployment
Helloworld Msa
Main repository with documentation and support files
Stars: ✭ 218 (+738.46%)
Mutual labels:  deployment
dropship
Super simple deployment tool
Stars: ✭ 62 (+138.46%)
Mutual labels:  deployment
Fusioninventory For Glpi
FusionInventory plugin for GLPI
Stars: ✭ 241 (+826.92%)
Mutual labels:  deployment
code-review
Automated static analysis & linting bot for Mozilla repositories
Stars: ✭ 51 (+96.15%)
Mutual labels:  mozilla
Mason
Cross platform package manager for C/C++ apps
Stars: ✭ 230 (+784.62%)
Mutual labels:  deployment
Gradle Cargo Plugin
Gradle plugin that provides deployment capabilities to local and remote containers via Cargo
Stars: ✭ 238 (+815.38%)
Mutual labels:  deployment
removedupes
Remove Duplicate Messages
Stars: ✭ 52 (+100%)
Mutual labels:  mozilla
K8s Diagrams
A collection of kubernetes-related diagrams
Stars: ✭ 227 (+773.08%)
Mutual labels:  deployment
MeetNinja-Google-Meet-Bot
A super dope tool that attends your Google Meet(s) for you. Flawlessly handles scheduled multiple (subsequent) Meet sessions. Also disables the camera & microphone, and shows timestamps of joining & ending times for each Meet. Supported: Google Chrome / Mozilla Firefox running on Linux / Mac / Windows
Stars: ✭ 56 (+115.38%)
Mutual labels:  mozilla
Cqtdeployer
This project is used to deploy applications written using QML, qt or other С / С++ frameworks.
Stars: ✭ 225 (+765.38%)
Mutual labels:  deployment
Provision
Digital Rebar Provision is a simple and powerful Golang executable that provides a complete API-driven DHCP/PXE/TFTP provisioning system.
Stars: ✭ 252 (+869.23%)
Mutual labels:  deployment
deployment-controller
基于Fabric8模拟Kubernetes的Deployment实现一个Controller
Stars: ✭ 60 (+130.77%)
Mutual labels:  deployment
action-web-ext
A GitHub Action to run web-ext commands
Stars: ✭ 33 (+26.92%)
Mutual labels:  mozilla
Avatar-Customizer
qt-mkr.com
Stars: ✭ 27 (+3.85%)
Mutual labels:  mozilla

dinobuildr

dinobuildr at Mozilla

The dinobuildr project is the current production macOS deployment and configuration tool at Mozilla. All Mozilla IT deployed Macs use this repo for initial system configuration via the following procedure:

  1. Install and/or update to the latest revision of the current release of macOS using Apple sanctioned installation methods
  2. Follow the macOS Setup Assistant to create a user account for the person that will be receiving the machine, and set some basic configurations
  3. Utilize the dinobuildr.sh script to pull down a verified commit of the dino_engine.py configuration script and run it on behalf of the user account created in step 2
  4. Enable Filevault and ensure that the password for the user account is set to something sufficiently random and complicated and hand over the machine to the person who requested it

dinobuildr is intended to be a transparent, reliable, and auditable deployment solution. Anyone may inspect the automated components of our build, review what software is being deployed by default, and what configuration changes are made to a machine. Unlike most deployment and configuration management solutions dinobuildr is intended to be easy to understand, contribute to, and to audit. It does not rely on management binaries or other artifacts to work as it operates using Python 2.7 (which is built into macOS) and uses no external Python libraries. All configuration scripts exist in code that has been written and audited by Mozilla IT and all software packages come from trusted sources and are independently hashed by Mozilla IT.

Background

dinobuildr is a macOS deployment utility developed by Mozilla IT. It provides a relatively flexible framework for deploying software and shell scripts to macOS clients running relatively new versions of macOS; relying on public-facing infrastructure such as Github and official vendor binary repositories that are exposed over the internet to deliver a consistent configuration. It is intended to be straightforward, simple, and is not feature rich - instead it offers a level of simplicity and transparency that may be useful in certain environments.

dinobuildr relies on a JSON manifest to specify the actions the build will take (and it what order) as well as providing URLs and SHA256 hash values for all the scripts, files, and packages in the build. Updating a package is generally as straightforward as changing the version and hash attributes in the JSON manifest. The current version of dinobuildr supports hosting arbitrary files, scripts, pkg files, and dmg files in the following locations:

  • Arbitrary Files - Github LFS
  • .pkg - Github LFS, HTTP(S)/FTP
  • .dmg - HTTP(S)/FTP
  • Bash Scripts - Github
  • .mobileconfig Files - Github
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].