Skip to content
Snippets Groups Projects
Commit 27e2ff38 authored by DIEGO MICHELOTTO's avatar DIEGO MICHELOTTO
Browse files

Merge branch 'feature/bebop-diego-review' into 'feature/bebop-diego'

review

See merge request cnaf-provisioning/cnaf-annual-report-2017!1
parents 7e96a5c2 f36412fd
No related branches found
No related tags found
1 merge request!5Feature/bebop
......@@ -27,15 +27,15 @@
}
\begin{abstract}
Puppet~\cite{ref:puppet} 3 has reached "End-of-life" at 31/12/2016. The CNAF provisioning must therefore be upgraded to a new version of Puppet. Due to other high priority tasks, this activity was postponed. In this report we are going to describe the activity necessary before upgrade to Puppet 5. Futhermore we are going to describe the new work methodology adopted for the development of puppet modules.
Puppet~\cite{ref:puppet} 3 has reached "End-of-life" at 31/12/2016. The CNAF provisioning must therefore be upgraded to a new version of Puppet. Due to other high priority tasks, this activity was postponed. In this report we are going to describe the activity necessary before upgrade to Puppet 5. Furthermore we are going to describe the new work methodology adopted to develop Puppet modules.
\end{abstract}
\section{Puppet ad CNAF}
At CNAF there are several production enviroment with different requirement, for the management of this big number of eterogeneous systems are used Puppet as "configuration management tool. Puppet is used in combination with Foreman~\cite{ref:foreman} that provides an easy to use graphycal use interface for the management of the entire lifecycle of our systems. Foreman is natively interfaced with Puppet.
\section{Provisioning at CNAF}
The installation and configuration activity, in a big computing centre like CNAF, must take into account the size of the resources (roughly a thousand nodes to manage), the heterogeneity of the systems (virtual vs physical nodes, computing nodes and different type of servers) and the different working group in charge for their management. To meet this challenge CNAF implemented a unique solution, adopted by all the departments, based on two well known open source technologies: Foreman~\cite{ref:foreman} for the initial installation, and Puppet for the configuration.
\newline
The use of Puppet permit us to automatize the configuratione and reconfigurtion of our enviroments. Since 2015 Puppet is adopted by the majority of the functiona unit of the CNAF. For these reasons is importat to follow the evolution of Puppet. In this way we can use more efficently this tool and we are covered by the security updates.
Due to the importance of this infrastructure, it is crucial to keep upgrading it while trying to minimize the impact on production systems, preventing service disruptions or broken configurations. To achieve this, we have worked on the Puppet test suite based on RSpec~\cite{ref:rspec} and rspec-puppet~\cite{ref:rspec-puppet} tools.
The actual version of Puppet installed at CNAF is Puppet 3 but in these years is released Puppet 4 and Puppet 5. Considerating that we are going to upgrade Puppet in our production enviroments, to prevent disservice or broken configuration we have worked on the implemetation of new methodology for the development of our Puppet modules. This methodology expect the use of RSpec~\cite{ref:rspec} and rspec-puppet~\cite{ref:rspec-puppet} tools for testing.
\section{Puppet version upgrade: preparation}
......@@ -43,11 +43,13 @@ Upgrading from Puppet 3 to Puppet 5 is a major upgrade with lots of configuratio
\begin{itemize}
\item The Puppet master setup requires the migration from a Rack and WEBrick setup to a Puppetserver based setup;
\item The Puppet code needs to be updated to mitigate breaking changes introduced by Puppet 4 and Puppet 5;
\item Foreman needs to be updated to a version supporting both Puppet versions;
\item Foreman needs to be updated to a version supporting both Puppet versions.
\end{itemize}
The main activity in 2017 has been the setup of automated test and development related utils for Puppet modules in order to prepare the migration from Puppet 3 to Puppet 5.
\newpage
This task involve a lot of effort which was spent in several tasks such as follow:
\begin{itemize}
\item Analysis, testing and upgrade of Puppetforge modules to a version usable by both Puppet versions;
......@@ -67,16 +69,16 @@ In addition to this, a detailed upgrade procedure of Foreman and Puppet was writ
Thanks to these tasks, the RSpec test suite with some plugins and the Puppet-lint utils, it is possible to test if a Puppet module is compliant with a specific Puppet version, reducing the amount of errors while upgrading to Puppet 5, also improving the development process itself.
\section{Future works}
At present, we are keep fixing and testing our modules, in order to upgrade Foreman and deploy a Puppet 5 infrastructure at the beginning of the 2018. This work will be made in consecutive steps:
At present, we are keep fixing and testing our modules, in order to upgrade Foreman and deploy a Puppet 5 infrastructure at the beginning of the 2018. This work will consists of following steps:
\begin{itemize}
\item Upgrade of Foreman in oredet to support Puppet 5.
\item Deploy of Puppet 5 infrastructure (1 Puppet CA and 3 Puppet server) in parallel with the Puppet 3 actual infrastrucure.
\item Upgrade all the puppet client to 3.8.7 version in order to support Puppet 5 servers.
\item Change in all clients the puppet server reference from puppet master 3 to puppet server 5.
\item Upgrade all clients to Puppet 5.
\item Upgrade Foreman in order to support Puppet 5;
\item Deploy Puppet 5 nodes (1 Puppet CA and 3 Puppetserver) in addition to the existing provisioning infrastructure;
\item Upgrade Puppet client to version 3.8.7 in order to support Puppet 5;
\item Change the "server" configuration file entry on each client from Puppet master 3 to Puppet server 5;
\item Upgrade Puppet client to version 5.
\end{itemize}
A lot of these steps it has already been prepared and tested in 2017 in order to be executed in 2018.
All these steps has already been prepared and tested in 2017 in order to be executed in 2018.
\section{References}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment