Day 0 Configuration: Building Long Term Success Beyond Server Provisioning
Let’s take a deeper dive into Day 0 configuration for server provisioning — it’s the foundational step for making sure your goals are met and you are set up for future success on Day 1 and Day 2.
What is Day 0 Configuration?
Back to topDay 0 configuration refers to the initial phase of software development where requirements and overall architecture of the project is planned and prepared for deployment.
What is Server Provisioning?
Server provisioning is the process of setting up resources like hardware, software, and networking components that support an IT system.
The server provisioning process often includes a checklist of tasks, including:
- Configuring settings like operating systems (OSes), permissions like role-based access control (RBAC), and firewall groups for network access
- Allocating resources like storage, cloud services, and IP addresses
Ultimately, server provisioning is about setting up a server to support the IT environment it's being added to.
Back to topBuilding Your Day 0 Configuration
Are you ready for Day 0? The work involved in preparing for Day 0 might require planning that starts at Day –200, when your organization decides to move from an older data center to a new one, or when you start mapping out your Day 0/1/2 plans.
Day 0’s success depends on your knowledge of what you actually want to accomplish. You’ll want to know:
- The platforms you want to support
- How to build a server on that platform
- How to get an agent on that platform, like a Puppet agent
- How you’re planning to classify nodes
- What kind of nodes you’re working with to assign the right code
Ready for Day 1? Skip to our article with Day 1 best practices here >>
Your roadmap needs to include where you want to be on Day 0 and beyond — it’s about understanding your DevOps workflow, and how you will ultimately implement change across your system with the resources that you have.
Back to topDay 0 Configuration for Server Provisioning
Now you’re ready for Day 0 to start — you know what you want to accomplish with your server provisioning and you’re ready to roll. With the Puppet team’s years of experience helping customers on Day 0, here are the top things you’ll want to keep in mind:
Get a Version Control System in Place
Not setting up a version control system on Day 0 is one of the biggest mistakes that a team can make — and some organizations have gone years without version control. Tracking and managing changes to code is critical. Teams are going to change, people are going to leave the organization, and problems are going to happen that require a strong record of everything that has happened. Using a version control system and preparing a place to store code like a Git repository will help improve your Day 0/1/2 and beyond.
There are so many ways to approach version control — your options are limitless. But you can start out with a few basic resources that can help you with broad decisions about how to create your system:
- How to use version control with Puppet
- Create a control repository that is ready to go from the start
Train New Teams of Operators
There are going to be people working within your server that have not touched version control before — those users need training or an introduction to Git. They need to know how you set things up, how to handle conflict resolution, and more. Prepare your team for success and put in the work to get them ready for daily functions.
Prioritize the Thing You Hate Most
If there are things you hate about managing a server, like SSH configurations — automate them and free up your time to work elsewhere. Face those tasks from the start and decide on modules like the ones that Puppet provides in the Forge and implement them.
Another thing you can manage with Puppet and automate? Network Time Protocol (NTP). We have a great module within the Forge to help with that.
Node Classification
When the Puppet team consults with a customer about how to approach node classification, they’ll ask questions like “what kinds of servers do you have?” and “what makes your servers different?” This helps guide a better understanding of how the customer currently tells servers apart.
Once you understand how your servers are differentiated, you can start to build out custom facts. These facts can detect what kind of server you have based on hostname, or it can label them accordingly when nodes are provisioned using external facts or trusted extensions (such as those embedded in the Puppet Agent SSL Certificate).
Here are some additional resources you might consider as you work through your classification effort:
- How to classify nodes using Puppet Enterprise groups
- Creating custom facter facts in Ruby
- Using simple external facts in flat files or any scripting language
Embrace Doing DevOps with Code
Prepare to accomplish the things you want with code — not just the version control repository, but with overall source control procedures and code hygiene that will help support your end goals and ultimately support DevOps.
Installing the Agent
This is what Day 0 is all about — getting the box ready, getting the agent installed, and preparing it for a configuration management platform like Puppet. If you’ve prepared your team, if you have a repository prepared for good source control procedures, you should have everything you need to get going.
Back to topWhen Are You Ready for Day 1?
Day 0 isn’t about accomplishing a progressive buildout of the box itself – it encompasses the planning decisions around the server and agent installation. Once you feel comfortable with that installation and your overall roadmap, you’re ready for Day 1.
If you’re going to use Puppet Enterprise to start provisioning, you’ve made a smart choice. Not only can Puppet handle those painful tasks that you want to automate, but it can help you get set up for long term success with configuration management and even compliance automation.
Executing a solid Day 0 plan that looks ahead toward your future goals is made easier when Puppet is directly installed on your agents. You’ll be ready to start provisioning on Day 1, ideally prepped with the tips we’ve mentioned in the blog.
Learn more about how Puppet Enterprise can support your Day 0/1/2 server provisioning plans — no matter how many servers or nodes you’ll be managing:
Back to top