SlideShare a Scribd company logo
1 of 20
Managing server (VM / Bare
Metal/Containers) with provisioning
Thierry GAYET - 08/2023
GOAL
The purpose of this presentation is to detail a method for
generating a bare metal server, a VM, a docker image, ... all
so that the configuration is not (no longer) manual but
managed in cong and deployable at any time.
OLD WAY
USB KEY
ISO / IMG FILE
(gDRIVE)
MANUAL
PROVISIONING
+ adding files manually
The old method to install or update a bare metal server, a VM was to carry out an initial
installation from a usb key or an ISO or img image then to continue the customization, the
updates via the command line.
The main problem being that there is no traceability, no reproducibility allowing to be able to
reinstall a server identical to zero.
Package repository (LOCAL)
NEW DEV(SEC)OPS WAY
USB KEY
ISO / IMG FILE
(gDRIVE)
SCRIPT PROVISIONING
(GIT)
Package repository (LOCAL)
The method to install or update a bare metal server, a current VM is to go through provisioning.
The provisioning managed in conf allows you to define the evolution of the server configuration over time,
whether it is the file security update, the addition of users, certificates, drivers, .... in short, any modification or
change in server settings.
This ensures a certain traceability via the management of conf but also a reproducibility allowing to be able to
reinstall a server identical to zero.
Provisioning refers to the process of preparing and configuring equipment, software, or resources so that they are ready
for efficient use and in compliance with the organization's requirements. There are several provisioning methods
depending on the context, domain, and technologies involved. Here are some of the most common provisioning methods:
Manual Provisioning : This is the simplest method where administrators manually configure each equipment or resource.
It can be effective for small environments but can become tedious and error-prone on a larger scale.
Provisioning Script s: Using scripts, such as configuration scripts or automation scripts, allows for quick and consistent
replication of equipment configuration. Tools like Ansible, Puppet, Salt stack and Chef are widely used for automating
configuration and deployment.
UI-Based Provisioning : Some platforms and applications offer user-friendly interfaces for configuring and provisioning
resources. Users can select options and set parameters through a graphical interface.
Template-Based Provisioning : Predefined templates are used to quickly provision systems. For example, when
deploying a virtual machine, a template can be selected to define hardware specifications, preinstalled software, etc.
Self-Service Provisioning : This approach allows end-users to request and provision resources themselves while adhering to
defined rules and policies.
[DEFINITION] Provisionning
Cloud Provisioning : In the context of cloud computing, provisioning is typically done through cloud management
interfaces. Users can quickly allocate and configure resources such as virtual machines, databases, network
services, etc.
Container Provisioning : In the context of containers, Docker images or other container formats are used to
define and provision applications along with their dependencies. This facilitates portability and consistency across
different environments.
Network Provisioning : In the networking domain, provisioning may involve configuring and deploying network
devices such as routers, switches, and firewalls.
Service Provisioning : In the realm of IT services, provisioning can also refer to creating and delivering services,
such as provisioning cloud services, online storage, etc.
IoT Device Provisioning : In the Internet of Things (IoT) domain, provisioning pertains to the initial configuration
and deployment of connected devices, often at scale.
Each provisioning method has its own advantages and disadvantages, and the choice depends on the
organization's specific needs, the complexity of the environment, and the technologies used.
[DEFINITION] Provisionning
● :Architecture : Agentless architecture, uses SSH for communication.
● Configuration Language : YAML (Yet Another Markup Language).
● Ease of Use : Known for its simplicity and ease of setup. No agents required on managed
nodes.
● Push-Based : Operates in a push-based model, where the control machine sends commands
to managed nodes.
● Adoption : Widely adopted due to its simplicity, good for ad-hoc tasks and orchestration.
● Idempotent : Designed to be idempotent by default, meaning running the same playbook
multiple times has the same result.
● Use Cases : Well-suited for configuration management, application deployment, and
orchestration.
[DEFINITION] Ansible
https://fr.wikipedia.org/wiki/Ansible_(logiciel)
https://www.redhat.com/en/technologies/management/ansible
● Architecture : Agent-based architecture, requires an agent (Puppet Agent) on managed nodes.
● Configuration Language : Puppet DSL (Domain-Specific Language).
● Ease of Use : Learning curve due to its DSL and agent setup.
● Pull-Based : Operates in a pull-based model, where agents request configurations from a central
server (Puppet Master).
● Resource Abstraction : Uses a resource-centric model where the desired state of resources is
defined.
● Idempotent : Enforces idempotence through resource management.
● Use Cases : Suitable for managing complex infrastructures, enforcing policies, and maintaining
configurations.
[DEFINITION] Puppet
https://fr.wikipedia.org/wiki/Puppet
https://www.puppet.com/
[DEFINITION] Salt stack
● Architecture : Agent-based or agentless, supports both push and pull models.
● Configuration Language : Uses YAML and Jinja for configurations.
● Ease of Use : Offers both simplicity and flexibility, known for speed due to its architecture.
● Push and Pull : Supports both push and pull models, making it versatile for different scenarios.
● Remote Execution : Known for remote execution capabilities.
● Idempotent : Provides mechanisms for idempotent execution.
● Use Cases : Suitable for real-time orchestration, remote execution, and configuration
management.
https://fr.wikipedia.org/wiki/Salt_(logiciel)
https://saltproject.io/index.html
[DEFINITION] Chef
https://fr.wikipedia.org/wiki/Chef_(logiciel)
https://www.chef.io/
● Architecture : Agent-based architecture, requires a client (Chef Client) on managed nodes.
● Configuration Language : Chef DSL and Ruby.
● Ease of Use : Moderate learning curve due to its DSL and Ruby integration.
● Pull-Based : Operates in a pull-based model, where nodes request configurations from a
central server (Chef Server).
● Resource Abstraction : Uses a resource-centric model similar to Puppet.
● Idempotent : Achieves idempotence through resource management and recipes.
● Use Cases : Suitable for infrastructure automation, application deployment, and complex
configuration management.
SCRIPT PROVISIONING COMPARISON
WHICH PROVISIONING USED
Ansible is a popular choice for provisioning using scripts due to its unique features and advantages that make it well-
suited for various scenarios. Here are some reasons why Ansible may be a good choice for provisioning by script:
● Agentless Architecture : Ansible operates in an agentless architecture, which means it doesn't require any
software to be installed on the managed nodes. This simplifies setup and reduces the overhead of managing
agents on each node.
● Simplicity : Ansible uses YAML-based playbooks, which are easy to read, write, and understand. The simplicity of
its syntax allows for faster script development and reduces the learning curve.
● Human-Readable : Ansible playbooks are human-readable and can serve as documentation themselves. This
makes it easy for team members to collaborate and understand the provisioning process.
● Declarative Style : Ansible follows a declarative approach, where you define the desired state of the system rather
than the detailed steps to achieve it. This approach makes scripts more concise and less error-prone.
● Idempotent Execution : Ansible ensures that running the same playbook multiple times results in the same
desired state. This reduces the risk of unintended changes and simplifies troubleshooting.
● Wide Range of Modules : Ansible provides a vast collection of modules for various tasks, such as configuration
management, package installation, service management, and more. These modules abstract the underlying
operations, making scripting easier.
WHICH PROVISIONING USED : ANSIBLE !
● Reusability : Ansible playbooks and roles can be reused across different projects and environments. This promotes
consistency and reduces the effort needed to create new scripts.
● Push-Based Model : Ansible operates in a push-based model, where the control machine sends commands to the managed
nodes. This allows for real-time execution of tasks and immediate feedback.
● Ad-Hoc Commands : Ansible allows you to run ad-hoc commands for quick tasks without creating a full playbook. This is
useful for one-off tasks or troubleshooting.
● Integration with Existing Tools : Ansible can be integrated with various tools and systems, including version control
systems, continuous integration pipelines, and orchestration frameworks.
● Extensibility : Ansible can be extended through custom modules, plugins, and integrations, allowing you to tailor it to your
specific needs.
● Community and Documentation : Ansible has a large and active community, which means you can find extensive
documentation, guides, and support resources online.
● No Central Server Requirement : While Ansible Tower provides additional features for managing and scheduling playbooks,
you can use Ansible without a central server, which reduces complexity for small deployments.
Overall, Ansible's simplicity, agentless architecture, idempotent execution, and extensive module library make it a strong choice for
provisioning using scripts. It's particularly well-suited for configuration management, application deployment, and orchestration
tasks across various environments and infrastructure setups.
MANUAL PROVISIONING :
● Definition : Manual provisioning involves configuring systems, applications, or
resources directly through human interaction, without using automation tools or
scripts.
● Process : Administrators manually perform the required steps to set up and
configure the systems. This can include installing software, adjusting settings, and
making configurations by interacting with user interfaces or command-line
interfaces.
● Advantages:
● Straightforward for simple setups or one-off tasks.
● Provides direct control and visibility over the configuration process.
● Disadvantages:
● Time-consuming and error-prone, especially for large-scale deployments.
● Inconsistent configurations can arise due to human error.
● We could have data loss
● Not suitable for repeatable or complex tasks.
SCRIPT PROVISIONING :
● Definition : Provisioning using scripts involves using automation scripts or tools to
define and execute the steps required for configuring systems, applications, or
resources.
● Process : Administrators create scripts (e.g., Bash, PowerShell, Ansible Playbooks) that
contain the necessary instructions and configurations. These scripts can be run on
target systems to automate the provisioning process.
● Advantages:
● Automation speeds up provisioning and reduces human errors.
● Ensures consistent configurations across multiple systems.
● Ideal for repetitive tasks or large-scale deployments.
● Disadvantages:
● Requires script development and testing.
● Learning curve for creating and maintaining scripts.
● Less direct visibility into the configuration process compared to manual
interaction.
PROVISIONING COMPARISON :
TO SAVE IN CONFIGURATION (GIT)
MANUAL PROVISIONING :
● the ISO / IMG file used for the initial installation
● all changes are not saved anywhere → data loss !
SCRIPT PROVISIONING :
● the ISO / IMG file used for the initial installation
● the ssh key pushed for the provisioning (ssh-copy-id)
● the provisioning : YAML file + all files need to be install on the server/vm/docker !
The two kind of provisioning need a LOCAL repository for each type used in order to
limit the bandwidth usage !
RULES
When provisioning using scripts, there are several best practices and rules that can help ensure successful and effective
automation of the provisioning process. Here are some of the main rules to follow:
● Keep Scripts Versioned : Store scripts in version control systems (e.g., Git) to track changes, collaborate with team
members, and ensure a reliable source of truth.
● Modular Approach : Break down scripts into modular components or functions. This makes scripts easier to understand,
maintain, and reuse.
● Documentation : Provide clear and concise documentation for each script, including usage instructions, dependencies,
and expected outcomes.
● Parameterization : Use parameters to make scripts flexible and reusable. Parameters allow you to customize the behavior
of the script without modifying the code.
● Error Handling : Implement proper error handling mechanisms to gracefully handle unexpected situations and failures.
● Logging : Incorporate logging mechanisms to capture script execution details, errors, and successes. This aids
troubleshooting and monitoring.
● Testing : Test scripts thoroughly in a controlled environment before deploying them to production systems. Consider
using testing frameworks and automated tests.
● Idempotence : Design scripts to be idempotent, meaning running the same script multiple times produces the same result.
This prevents unintended changes.
RULES
● Validation: Implement validation steps to ensure that input parameters are valid and that the environment meets the script's
prerequisites.
● Security : Follow security best practices, such as using encryption for sensitive data, limiting privileges, and avoiding
hardcoding credentials.
● Code Review : Conduct code reviews with team members to ensure script quality, adherence to standards, and to catch
potential issues.
● Backup : Backup configurations or data before applying changes using scripts. This allows you to revert changes if needed.
● Monitoring : Implement monitoring mechanisms to track the execution of scripts and receive alerts in case of failures.
● Maintenance : Regularly update and maintain scripts as requirements change, technologies evolve, and new features are
introduced.
● Declarative vs. Imperative : Consider whether to use a declarative (specify desired state) or imperative (specify detailed
steps) approach in your scripts, based on the task and complexity.
● Reusability : Aim for reusability by creating libraries or common modules that can be used across multiple scripts.
● Review External Dependencies : If your scripts rely on external tools or libraries, review and manage their dependencies to
ensure they remain available and compatible.
By following these rules, you can create reliable, maintainable, and efficient provisioning scripts that contribute to the successful
automation of your infrastructure and application management tasks.
QUESTIONS & ECHANGES

More Related Content

Similar to Installation d'une VM _ BAREMETAL pour les SLAVE JENKINS and co

stackconf 2020 | Infrastructure as Software by Paul Stack
stackconf 2020 | Infrastructure as Software by Paul Stackstackconf 2020 | Infrastructure as Software by Paul Stack
stackconf 2020 | Infrastructure as Software by Paul StackNETWAYS
 
[WSO2Con Asia 2018] Architecting for Container-native Environments
[WSO2Con Asia 2018] Architecting for Container-native Environments[WSO2Con Asia 2018] Architecting for Container-native Environments
[WSO2Con Asia 2018] Architecting for Container-native EnvironmentsWSO2
 
DevOps Training | DevOps Online Training
DevOps Training | DevOps Online TrainingDevOps Training | DevOps Online Training
DevOps Training | DevOps Online TrainingVisualpath Training
 
TechWiseTV Workshop: Open NX-OS and Devops with Puppet Labs
TechWiseTV Workshop: Open NX-OS and Devops with Puppet LabsTechWiseTV Workshop: Open NX-OS and Devops with Puppet Labs
TechWiseTV Workshop: Open NX-OS and Devops with Puppet LabsRobb Boyd
 
Introduction to Google Cloud & GCCP Campaign
Introduction to Google Cloud & GCCP CampaignIntroduction to Google Cloud & GCCP Campaign
Introduction to Google Cloud & GCCP CampaignGDSCVJTI
 
Pivotal cloud cache for .net microservices
Pivotal cloud cache for .net microservicesPivotal cloud cache for .net microservices
Pivotal cloud cache for .net microservicesJagdish Mirani
 
Introdcution to Azure
Introdcution to AzureIntrodcution to Azure
Introdcution to AzureOmid Vahdaty
 
Comparisons of the most famous container Orchestrators
Comparisons of the most famous container OrchestratorsComparisons of the most famous container Orchestrators
Comparisons of the most famous container OrchestratorsThierry Gayet
 
API Microservices with Node.js and Docker
API Microservices with Node.js and DockerAPI Microservices with Node.js and Docker
API Microservices with Node.js and DockerApigee | Google Cloud
 
Developing, testing and distributing elasticsearch beats in a complex, heter...
Developing, testing and distributing elasticsearch beats in  a complex, heter...Developing, testing and distributing elasticsearch beats in  a complex, heter...
Developing, testing and distributing elasticsearch beats in a complex, heter...Jesper Agerled Wermuth
 
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...DevOps.com
 
IRJET- ALPYNE - A Grid Computing Framework
IRJET- ALPYNE - A Grid Computing FrameworkIRJET- ALPYNE - A Grid Computing Framework
IRJET- ALPYNE - A Grid Computing FrameworkIRJET Journal
 
Serverless java
Serverless   javaServerless   java
Serverless javaVishwas N
 
Open shift and docker - october,2014
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014Hojoong Kim
 
Multi-Tenant SOA Middleware for Cloud Computing
Multi-Tenant SOA Middleware for Cloud ComputingMulti-Tenant SOA Middleware for Cloud Computing
Multi-Tenant SOA Middleware for Cloud ComputingWSO2
 
Hitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as Code
Hitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as CodeHitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as Code
Hitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as CodeRobert van Mölken
 
Ansible for Enterprise
Ansible for EnterpriseAnsible for Enterprise
Ansible for EnterpriseAnsible
 
Web後端技術的演變
Web後端技術的演變Web後端技術的演變
Web後端技術的演變inwin stack
 

Similar to Installation d'une VM _ BAREMETAL pour les SLAVE JENKINS and co (20)

stackconf 2020 | Infrastructure as Software by Paul Stack
stackconf 2020 | Infrastructure as Software by Paul Stackstackconf 2020 | Infrastructure as Software by Paul Stack
stackconf 2020 | Infrastructure as Software by Paul Stack
 
Past, Present and Future of DevOps Infrastructure
Past, Present and Future of DevOps InfrastructurePast, Present and Future of DevOps Infrastructure
Past, Present and Future of DevOps Infrastructure
 
[WSO2Con Asia 2018] Architecting for Container-native Environments
[WSO2Con Asia 2018] Architecting for Container-native Environments[WSO2Con Asia 2018] Architecting for Container-native Environments
[WSO2Con Asia 2018] Architecting for Container-native Environments
 
DevOps Training | DevOps Online Training
DevOps Training | DevOps Online TrainingDevOps Training | DevOps Online Training
DevOps Training | DevOps Online Training
 
TechWiseTV Workshop: Open NX-OS and Devops with Puppet Labs
TechWiseTV Workshop: Open NX-OS and Devops with Puppet LabsTechWiseTV Workshop: Open NX-OS and Devops with Puppet Labs
TechWiseTV Workshop: Open NX-OS and Devops with Puppet Labs
 
Introduction to Google Cloud & GCCP Campaign
Introduction to Google Cloud & GCCP CampaignIntroduction to Google Cloud & GCCP Campaign
Introduction to Google Cloud & GCCP Campaign
 
Pivotal cloud cache for .net microservices
Pivotal cloud cache for .net microservicesPivotal cloud cache for .net microservices
Pivotal cloud cache for .net microservices
 
Automation Evolution with Junos
Automation Evolution with JunosAutomation Evolution with Junos
Automation Evolution with Junos
 
Introdcution to Azure
Introdcution to AzureIntrodcution to Azure
Introdcution to Azure
 
Comparisons of the most famous container Orchestrators
Comparisons of the most famous container OrchestratorsComparisons of the most famous container Orchestrators
Comparisons of the most famous container Orchestrators
 
API Microservices with Node.js and Docker
API Microservices with Node.js and DockerAPI Microservices with Node.js and Docker
API Microservices with Node.js and Docker
 
Developing, testing and distributing elasticsearch beats in a complex, heter...
Developing, testing and distributing elasticsearch beats in  a complex, heter...Developing, testing and distributing elasticsearch beats in  a complex, heter...
Developing, testing and distributing elasticsearch beats in a complex, heter...
 
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
 
IRJET- ALPYNE - A Grid Computing Framework
IRJET- ALPYNE - A Grid Computing FrameworkIRJET- ALPYNE - A Grid Computing Framework
IRJET- ALPYNE - A Grid Computing Framework
 
Serverless java
Serverless   javaServerless   java
Serverless java
 
Open shift and docker - october,2014
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014
 
Multi-Tenant SOA Middleware for Cloud Computing
Multi-Tenant SOA Middleware for Cloud ComputingMulti-Tenant SOA Middleware for Cloud Computing
Multi-Tenant SOA Middleware for Cloud Computing
 
Hitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as Code
Hitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as CodeHitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as Code
Hitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as Code
 
Ansible for Enterprise
Ansible for EnterpriseAnsible for Enterprise
Ansible for Enterprise
 
Web後端技術的演變
Web後端技術的演變Web後端技術的演變
Web後端技術的演變
 

Recently uploaded

EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 

Recently uploaded (20)

EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 

Installation d'une VM _ BAREMETAL pour les SLAVE JENKINS and co

  • 1. Managing server (VM / Bare Metal/Containers) with provisioning Thierry GAYET - 08/2023
  • 2. GOAL The purpose of this presentation is to detail a method for generating a bare metal server, a VM, a docker image, ... all so that the configuration is not (no longer) manual but managed in cong and deployable at any time.
  • 3. OLD WAY USB KEY ISO / IMG FILE (gDRIVE) MANUAL PROVISIONING + adding files manually The old method to install or update a bare metal server, a VM was to carry out an initial installation from a usb key or an ISO or img image then to continue the customization, the updates via the command line. The main problem being that there is no traceability, no reproducibility allowing to be able to reinstall a server identical to zero. Package repository (LOCAL)
  • 4. NEW DEV(SEC)OPS WAY USB KEY ISO / IMG FILE (gDRIVE) SCRIPT PROVISIONING (GIT) Package repository (LOCAL) The method to install or update a bare metal server, a current VM is to go through provisioning. The provisioning managed in conf allows you to define the evolution of the server configuration over time, whether it is the file security update, the addition of users, certificates, drivers, .... in short, any modification or change in server settings. This ensures a certain traceability via the management of conf but also a reproducibility allowing to be able to reinstall a server identical to zero.
  • 5. Provisioning refers to the process of preparing and configuring equipment, software, or resources so that they are ready for efficient use and in compliance with the organization's requirements. There are several provisioning methods depending on the context, domain, and technologies involved. Here are some of the most common provisioning methods: Manual Provisioning : This is the simplest method where administrators manually configure each equipment or resource. It can be effective for small environments but can become tedious and error-prone on a larger scale. Provisioning Script s: Using scripts, such as configuration scripts or automation scripts, allows for quick and consistent replication of equipment configuration. Tools like Ansible, Puppet, Salt stack and Chef are widely used for automating configuration and deployment. UI-Based Provisioning : Some platforms and applications offer user-friendly interfaces for configuring and provisioning resources. Users can select options and set parameters through a graphical interface. Template-Based Provisioning : Predefined templates are used to quickly provision systems. For example, when deploying a virtual machine, a template can be selected to define hardware specifications, preinstalled software, etc. Self-Service Provisioning : This approach allows end-users to request and provision resources themselves while adhering to defined rules and policies. [DEFINITION] Provisionning
  • 6. Cloud Provisioning : In the context of cloud computing, provisioning is typically done through cloud management interfaces. Users can quickly allocate and configure resources such as virtual machines, databases, network services, etc. Container Provisioning : In the context of containers, Docker images or other container formats are used to define and provision applications along with their dependencies. This facilitates portability and consistency across different environments. Network Provisioning : In the networking domain, provisioning may involve configuring and deploying network devices such as routers, switches, and firewalls. Service Provisioning : In the realm of IT services, provisioning can also refer to creating and delivering services, such as provisioning cloud services, online storage, etc. IoT Device Provisioning : In the Internet of Things (IoT) domain, provisioning pertains to the initial configuration and deployment of connected devices, often at scale. Each provisioning method has its own advantages and disadvantages, and the choice depends on the organization's specific needs, the complexity of the environment, and the technologies used. [DEFINITION] Provisionning
  • 7. ● :Architecture : Agentless architecture, uses SSH for communication. ● Configuration Language : YAML (Yet Another Markup Language). ● Ease of Use : Known for its simplicity and ease of setup. No agents required on managed nodes. ● Push-Based : Operates in a push-based model, where the control machine sends commands to managed nodes. ● Adoption : Widely adopted due to its simplicity, good for ad-hoc tasks and orchestration. ● Idempotent : Designed to be idempotent by default, meaning running the same playbook multiple times has the same result. ● Use Cases : Well-suited for configuration management, application deployment, and orchestration. [DEFINITION] Ansible https://fr.wikipedia.org/wiki/Ansible_(logiciel) https://www.redhat.com/en/technologies/management/ansible
  • 8. ● Architecture : Agent-based architecture, requires an agent (Puppet Agent) on managed nodes. ● Configuration Language : Puppet DSL (Domain-Specific Language). ● Ease of Use : Learning curve due to its DSL and agent setup. ● Pull-Based : Operates in a pull-based model, where agents request configurations from a central server (Puppet Master). ● Resource Abstraction : Uses a resource-centric model where the desired state of resources is defined. ● Idempotent : Enforces idempotence through resource management. ● Use Cases : Suitable for managing complex infrastructures, enforcing policies, and maintaining configurations. [DEFINITION] Puppet https://fr.wikipedia.org/wiki/Puppet https://www.puppet.com/
  • 9. [DEFINITION] Salt stack ● Architecture : Agent-based or agentless, supports both push and pull models. ● Configuration Language : Uses YAML and Jinja for configurations. ● Ease of Use : Offers both simplicity and flexibility, known for speed due to its architecture. ● Push and Pull : Supports both push and pull models, making it versatile for different scenarios. ● Remote Execution : Known for remote execution capabilities. ● Idempotent : Provides mechanisms for idempotent execution. ● Use Cases : Suitable for real-time orchestration, remote execution, and configuration management. https://fr.wikipedia.org/wiki/Salt_(logiciel) https://saltproject.io/index.html
  • 10. [DEFINITION] Chef https://fr.wikipedia.org/wiki/Chef_(logiciel) https://www.chef.io/ ● Architecture : Agent-based architecture, requires a client (Chef Client) on managed nodes. ● Configuration Language : Chef DSL and Ruby. ● Ease of Use : Moderate learning curve due to its DSL and Ruby integration. ● Pull-Based : Operates in a pull-based model, where nodes request configurations from a central server (Chef Server). ● Resource Abstraction : Uses a resource-centric model similar to Puppet. ● Idempotent : Achieves idempotence through resource management and recipes. ● Use Cases : Suitable for infrastructure automation, application deployment, and complex configuration management.
  • 12. WHICH PROVISIONING USED Ansible is a popular choice for provisioning using scripts due to its unique features and advantages that make it well- suited for various scenarios. Here are some reasons why Ansible may be a good choice for provisioning by script: ● Agentless Architecture : Ansible operates in an agentless architecture, which means it doesn't require any software to be installed on the managed nodes. This simplifies setup and reduces the overhead of managing agents on each node. ● Simplicity : Ansible uses YAML-based playbooks, which are easy to read, write, and understand. The simplicity of its syntax allows for faster script development and reduces the learning curve. ● Human-Readable : Ansible playbooks are human-readable and can serve as documentation themselves. This makes it easy for team members to collaborate and understand the provisioning process. ● Declarative Style : Ansible follows a declarative approach, where you define the desired state of the system rather than the detailed steps to achieve it. This approach makes scripts more concise and less error-prone. ● Idempotent Execution : Ansible ensures that running the same playbook multiple times results in the same desired state. This reduces the risk of unintended changes and simplifies troubleshooting. ● Wide Range of Modules : Ansible provides a vast collection of modules for various tasks, such as configuration management, package installation, service management, and more. These modules abstract the underlying operations, making scripting easier.
  • 13. WHICH PROVISIONING USED : ANSIBLE ! ● Reusability : Ansible playbooks and roles can be reused across different projects and environments. This promotes consistency and reduces the effort needed to create new scripts. ● Push-Based Model : Ansible operates in a push-based model, where the control machine sends commands to the managed nodes. This allows for real-time execution of tasks and immediate feedback. ● Ad-Hoc Commands : Ansible allows you to run ad-hoc commands for quick tasks without creating a full playbook. This is useful for one-off tasks or troubleshooting. ● Integration with Existing Tools : Ansible can be integrated with various tools and systems, including version control systems, continuous integration pipelines, and orchestration frameworks. ● Extensibility : Ansible can be extended through custom modules, plugins, and integrations, allowing you to tailor it to your specific needs. ● Community and Documentation : Ansible has a large and active community, which means you can find extensive documentation, guides, and support resources online. ● No Central Server Requirement : While Ansible Tower provides additional features for managing and scheduling playbooks, you can use Ansible without a central server, which reduces complexity for small deployments. Overall, Ansible's simplicity, agentless architecture, idempotent execution, and extensive module library make it a strong choice for provisioning using scripts. It's particularly well-suited for configuration management, application deployment, and orchestration tasks across various environments and infrastructure setups.
  • 14. MANUAL PROVISIONING : ● Definition : Manual provisioning involves configuring systems, applications, or resources directly through human interaction, without using automation tools or scripts. ● Process : Administrators manually perform the required steps to set up and configure the systems. This can include installing software, adjusting settings, and making configurations by interacting with user interfaces or command-line interfaces. ● Advantages: ● Straightforward for simple setups or one-off tasks. ● Provides direct control and visibility over the configuration process. ● Disadvantages: ● Time-consuming and error-prone, especially for large-scale deployments. ● Inconsistent configurations can arise due to human error. ● We could have data loss ● Not suitable for repeatable or complex tasks.
  • 15. SCRIPT PROVISIONING : ● Definition : Provisioning using scripts involves using automation scripts or tools to define and execute the steps required for configuring systems, applications, or resources. ● Process : Administrators create scripts (e.g., Bash, PowerShell, Ansible Playbooks) that contain the necessary instructions and configurations. These scripts can be run on target systems to automate the provisioning process. ● Advantages: ● Automation speeds up provisioning and reduces human errors. ● Ensures consistent configurations across multiple systems. ● Ideal for repetitive tasks or large-scale deployments. ● Disadvantages: ● Requires script development and testing. ● Learning curve for creating and maintaining scripts. ● Less direct visibility into the configuration process compared to manual interaction.
  • 17. TO SAVE IN CONFIGURATION (GIT) MANUAL PROVISIONING : ● the ISO / IMG file used for the initial installation ● all changes are not saved anywhere → data loss ! SCRIPT PROVISIONING : ● the ISO / IMG file used for the initial installation ● the ssh key pushed for the provisioning (ssh-copy-id) ● the provisioning : YAML file + all files need to be install on the server/vm/docker ! The two kind of provisioning need a LOCAL repository for each type used in order to limit the bandwidth usage !
  • 18. RULES When provisioning using scripts, there are several best practices and rules that can help ensure successful and effective automation of the provisioning process. Here are some of the main rules to follow: ● Keep Scripts Versioned : Store scripts in version control systems (e.g., Git) to track changes, collaborate with team members, and ensure a reliable source of truth. ● Modular Approach : Break down scripts into modular components or functions. This makes scripts easier to understand, maintain, and reuse. ● Documentation : Provide clear and concise documentation for each script, including usage instructions, dependencies, and expected outcomes. ● Parameterization : Use parameters to make scripts flexible and reusable. Parameters allow you to customize the behavior of the script without modifying the code. ● Error Handling : Implement proper error handling mechanisms to gracefully handle unexpected situations and failures. ● Logging : Incorporate logging mechanisms to capture script execution details, errors, and successes. This aids troubleshooting and monitoring. ● Testing : Test scripts thoroughly in a controlled environment before deploying them to production systems. Consider using testing frameworks and automated tests. ● Idempotence : Design scripts to be idempotent, meaning running the same script multiple times produces the same result. This prevents unintended changes.
  • 19. RULES ● Validation: Implement validation steps to ensure that input parameters are valid and that the environment meets the script's prerequisites. ● Security : Follow security best practices, such as using encryption for sensitive data, limiting privileges, and avoiding hardcoding credentials. ● Code Review : Conduct code reviews with team members to ensure script quality, adherence to standards, and to catch potential issues. ● Backup : Backup configurations or data before applying changes using scripts. This allows you to revert changes if needed. ● Monitoring : Implement monitoring mechanisms to track the execution of scripts and receive alerts in case of failures. ● Maintenance : Regularly update and maintain scripts as requirements change, technologies evolve, and new features are introduced. ● Declarative vs. Imperative : Consider whether to use a declarative (specify desired state) or imperative (specify detailed steps) approach in your scripts, based on the task and complexity. ● Reusability : Aim for reusability by creating libraries or common modules that can be used across multiple scripts. ● Review External Dependencies : If your scripts rely on external tools or libraries, review and manage their dependencies to ensure they remain available and compatible. By following these rules, you can create reliable, maintainable, and efficient provisioning scripts that contribute to the successful automation of your infrastructure and application management tasks.