• Devops AWS
  • Git Tutorial
  • Hadoop Tutorial
  • Apache Spark
  • Docker
  • Amazon RDS
  • Blockchain
  • BIG-DATA
  • AWS-Architect
  • COVID-19
  • Proxy List
  • AWS-Certified
  • Cloud-Computing
  • AWS certifications
AWS Certified Solutions Architect - Professional
  • Home
    • Home – Layout 1
    • Home – Layout 2
    • Home – Layout 3
    • Home – Layout 4
    • Home – Layout 5
    • Home – Layout 6
  • News
    • All
    • Business
    • Politics
    • Science
    • World
    Load data into AWS Redshift from AWS S3

    Load data into AWS Redshift from AWS S3

    probable Oracle Net admin error

    DIA-28546: connection initialization failed, probable Net8 admin error

    The data on the coronavirus pandemic is updated daily.

    Covid-19

    The data on the coronavirus pandemic is updated daily.

    Covid-19 update

    AWS Certified Cloud Practitioner

    AWS Certified Cloud Practitioner

    Database Fundamentals for AWS

    Database Fundamentals for AWS

    Trending Tags

    • Trump Inauguration
    • United Stated
    • White House
    • Market Stories
    • Election Results
  • Tech
    • All
    • Apps
    • Gadget
    • Mobile
    • Startup
    sellers.json

    sellers.json

    A Performance Dashboard for Apache Spark

    A Performance Dashboard for Apache Spark

    Step-by-Step Tutorial for Apache Spark Installation

    Apache Spark 3.0 Memory Monitoring Improvements

    Getting started with Amazon S3 and Python

    Getting started with Amazon S3 and Python

    Implementing an SSAS Tabular Model for Data Analytics

    Implementing an SSAS Tabular Model for Data Analytics

    Configure ODBC drivers for MySQL

    Configure ODBC drivers for MySQL

    Trending Tags

    • Nintendo Switch
    • CES 2017
    • Playstation 4 Pro
    • Mark Zuckerberg
  • Entertainment
    • All
    • Gaming
    • Movie
    • Music
    • Sports
    free A proxy server

    Fresh Proxy Lists update 2020-06-28

    DIA-28073: The column "string" has an unsupported data type or

    ORA-16627: operation disallowed since no member would remain to support

    Fresh Proxy Lists update

    The Legend of Zelda: Breath of the Wild gameplay on the Nintendo Switch

    macOS Sierra review: Mac users get a modest update this year

    Hands on: Samsung Galaxy A5 2017 review

    Heroes of the Storm Global Championship 2017 starts tomorrow, here’s what you need to know

  • Lifestyle
    • All
    • Fashion
    • Food
    • Health
    • Travel
    covid-19 update

    Fresh Proxy Lists update 2020-06-18

    ORA-39866: Data files for Pluggable Database string must be offline to

    ORA-16693: requirements not met for enabling fast-start failover

    The data on the coronavirus pandemic is updated daily.

    Covid-19

    The data on the coronavirus pandemic is updated daily.

    Covid-19 update

    AWS Certified Cloud Practitioner

    AWS Certified Cloud Practitioner

    Covid-19 -update

    Covid-19 -update-2020-06-16

    Trending Tags

    • Golden Globes
    • Game of Thrones
    • MotoGP 2017
    • eSports
    • Fashion Week
  • Review
    covid-19 update

    Fresh Proxy Lists update 2020-06-18

    AWS Cloud Practitioner

    AWS Cloud Practitioner course

    AWS Cloud Practitioner Essentials

    AWS Cloud Practitioner Essentials

    Machine Learning Tutorial

    Machine Learning Tutorial

    Cloud AWS – Amazon Web Services

    Cloud AWS – Amazon Web Services

    AWS Amazon

    formation AWS Amazon

No Result
View All Result
  • Home
    • Home – Layout 1
    • Home – Layout 2
    • Home – Layout 3
    • Home – Layout 4
    • Home – Layout 5
    • Home – Layout 6
  • News
    • All
    • Business
    • Politics
    • Science
    • World
    Load data into AWS Redshift from AWS S3

    Load data into AWS Redshift from AWS S3

    probable Oracle Net admin error

    DIA-28546: connection initialization failed, probable Net8 admin error

    The data on the coronavirus pandemic is updated daily.

    Covid-19

    The data on the coronavirus pandemic is updated daily.

    Covid-19 update

    AWS Certified Cloud Practitioner

    AWS Certified Cloud Practitioner

    Database Fundamentals for AWS

    Database Fundamentals for AWS

    Trending Tags

    • Trump Inauguration
    • United Stated
    • White House
    • Market Stories
    • Election Results
  • Tech
    • All
    • Apps
    • Gadget
    • Mobile
    • Startup
    sellers.json

    sellers.json

    A Performance Dashboard for Apache Spark

    A Performance Dashboard for Apache Spark

    Step-by-Step Tutorial for Apache Spark Installation

    Apache Spark 3.0 Memory Monitoring Improvements

    Getting started with Amazon S3 and Python

    Getting started with Amazon S3 and Python

    Implementing an SSAS Tabular Model for Data Analytics

    Implementing an SSAS Tabular Model for Data Analytics

    Configure ODBC drivers for MySQL

    Configure ODBC drivers for MySQL

    Trending Tags

    • Nintendo Switch
    • CES 2017
    • Playstation 4 Pro
    • Mark Zuckerberg
  • Entertainment
    • All
    • Gaming
    • Movie
    • Music
    • Sports
    free A proxy server

    Fresh Proxy Lists update 2020-06-28

    DIA-28073: The column "string" has an unsupported data type or

    ORA-16627: operation disallowed since no member would remain to support

    Fresh Proxy Lists update

    The Legend of Zelda: Breath of the Wild gameplay on the Nintendo Switch

    macOS Sierra review: Mac users get a modest update this year

    Hands on: Samsung Galaxy A5 2017 review

    Heroes of the Storm Global Championship 2017 starts tomorrow, here’s what you need to know

  • Lifestyle
    • All
    • Fashion
    • Food
    • Health
    • Travel
    covid-19 update

    Fresh Proxy Lists update 2020-06-18

    ORA-39866: Data files for Pluggable Database string must be offline to

    ORA-16693: requirements not met for enabling fast-start failover

    The data on the coronavirus pandemic is updated daily.

    Covid-19

    The data on the coronavirus pandemic is updated daily.

    Covid-19 update

    AWS Certified Cloud Practitioner

    AWS Certified Cloud Practitioner

    Covid-19 -update

    Covid-19 -update-2020-06-16

    Trending Tags

    • Golden Globes
    • Game of Thrones
    • MotoGP 2017
    • eSports
    • Fashion Week
  • Review
    covid-19 update

    Fresh Proxy Lists update 2020-06-18

    AWS Cloud Practitioner

    AWS Cloud Practitioner course

    AWS Cloud Practitioner Essentials

    AWS Cloud Practitioner Essentials

    Machine Learning Tutorial

    Machine Learning Tutorial

    Cloud AWS – Amazon Web Services

    Cloud AWS – Amazon Web Services

    AWS Amazon

    formation AWS Amazon

No Result
View All Result
AWS Certified Solutions Architect - Professional
No Result
View All Result
Home aws-senior

Terraform Microsoft Azure Partie 1/2

aws-senior by aws-senior
22 October 2019
in aws-senior
0
terraform

terraform

0
SHARES
8
VIEWS
Share on FacebookShare on TwitterShare on Linjedin

L’IaC, qu’est-ce que c’est ?

Avant de parler de Terraform, il est important de faire un petit rappel et ainsi d’évoquer la notion d’Infrastructure as Code (ou IaC).

Lorsque l’on parle d’IaC, on fait référence à la possibilité d’administrer et d’automatiser le déploiement ou la mise à jour d’une infrastructure à travers du code, contre un processus manuel. L’Infrastructure as Code représente un important changement d’état d’esprit quand on traite d’infrastructure programmable. L’Infrastructure as Code peut être utilisé dans plusieurs environnements informatiques. Mais il est très utilisé voir essentiel dans le Cloud public/privé.
De plus, la philosophie DevOps pousse à travailler en Agile et à automatiser tout ce qui peut être automatisable.

Il existe quatre grandes catégories d’outils d’IaC :

  • Les scripts classiques de type bash (ad hoc scripts)
  • Les outils de gestions de configuration (configuration management tools)
  • Les outils de template serveur (server templating tools)
  • Les outils de provisionnement de serveur (server provisioning tools)

Scripts ad hoc

L’approche la plus directe pour automatiser n’importe quoi qui peut être faite à la main est de faire des scripts de type bash, python, ruby et de les exécuter côté serveur.

Dans l’exemple suivant, nous avons un script nommé « install-jenkins.sh » écrit en bash que l’on exécute côté serveur, qui va nous permettre d’installer l’application Jenkins.

 #!/bin/bash 
# Add the repo key to the system 
wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add - 
# Add the repo add to the server's sources.list 
echo deb https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list 
# Update for using the new repo sudo apt update # Verify if default-jre are installed var1="default-jre" var2="aptitude" sudo apt install $var2 if [ `aptitude search $var1 | tr -s " " | cut -d " " -f 1,2 | grep "^i" | wc -l` -ne 0 ];         then echo "$var1 INSTALLE";         else sudo apt -y install $var1; fi 
# Installation of jenkins sudo apt install jenkins # Starting jenkins.service sudo systemctl start jenkins 
# Status to verify that it started successfully sudo systemctl status jenkins 

L’avantage de ce type de scripts et qu’il utilise des langages connus et que ce code peut être simplement écrit. Ce type de langage est personnalisable en fonction des tâches que l’on souhaite effectuer, contrairement aux outils spécialement conçus pour l’IaC. Ces outils utilisent une structure particulière avec des API fournis pour effectuer des tâches plus complexes. L’utilisation de scripts est intéressante pour des tâches automatisables, simples, comme l’installation d’une application, mais devient beaucoup plus complexe quand il va s’agir de gérer plusieurs serveurs, bases de données, etc.

Outils de gestion de configuration

Il existe plusieurs outils de gestion de configuration tels que Chef, Puppet, Ansible et Saltstack qui sont utilisés pour installer et gérer des applications (software) dans un serveur existant.

Dans l’exemple suivant, nous utilisons un « playbook » Ansible « web-server.yml » pour installer toute une stack web qui comprend Ngnix, MySQL et PHP.

- name: Install Nginx
  apt:
    name: nginx
    state: latest
- name: Instal PHP-FPM
  apt:
    name: ['php','php-fpm','php-common','php-cli','php-curl']
    state: latest
- name: start nginx
  service:
    name: nginx
    state: started
    enabled: yes
- name: start php-fpm
  service:
    name: php{{ php_version }}-fpm
    state: started
    enabled: yes

On peut appliquer cette nouvelle configuration à plusieurs serveurs en spécifiant leur adresse IP dans un fichier appelé « hosts » :

10.0.0.1
10.0.0.2
10.0.0.3

On peut appliquer les configurations avec la commande suivante :
Application du playbook
ansible-playbook -i hosts web-server.yml

ansible-playbook -i hosts web-server.yml

Le problème avec les scripts classiques de type bash est qu’ils ne peuvent souvent pas s’exécuter à plusieurs reprises, car il faut garder en tête tout ce que le script a, ou créé, ou exécuté lors de la première exécution (dossiers, fichiers, services, etc.) , et donc changer le script en conséquence en ajoutant de nouvelles lignes et des conditions if-then pour s’adapter à tout changement. Donc, écrire un script qui peut être exécuté à plusieurs reprises est plus compliqué.
On appelle un script qui peut s’exécuter correctement plusieurs fois, idempotent.
Ansible inclut plusieurs fonctionnalités idempotentes par défaut. Dans l’exemple ci-dessus, l’installation des applications ne va se faire que si elles ne sont pas installées, et de la même manière, elles ne vont pas s’exécuter si elles sont déjà en cours d’exécution.

Contrairement à un script classique qui peut être exécuté que sur une machine, Ansible permet d’exécuter un script (Playbook) sur une ou plusieurs machines en série, en spécifiant l’adresse IP de chaque serveur cible.

aws-senior.com
Configurer plusieurs serveurs à l’aide d’un playbook

Outils de Template serveur

Les outils de Template serveur sont de plus en plus utilisés comme alternative aux outils de gestion de configuration avec Docker, Packer et Vagrant.
Au lieu de monter des serveurs et d’exécuter des scripts de configuration dans chacun d’eux, on crée une image d’un serveur (avec son OS, logiciels, fichiers, etc.) et on utilise un outil comme Ansible pour installer l’image sur plusieurs serveurs.
On peut ainsi affecter un numéro de version à chaque image créée et donc revenir à une précédente version si un problème survient.

Packer & Ansible
Application d’un Template Packer sur plusieurs serveurs à l’aide d’Ansible

Dans le cas d’Azure, chaque machine virtuelle est créée à partir d’une image qui définit la distribution Windows et la version du système d’exploitation. Les images peuvent inclure des configurations et des applications préinstallées.
Par exemple, ci-dessous, vous pouvez trouver un Template Packer au format .json pour créer une machine virtuelle sur Azure.

Source : https://docs.microsoft.com/fr-fr/azure/virtual-machines/windows/build-image-with-packer

On pourra exécuter ce Template à l’aide de la commande Packer suivante :
./packer build windows.json

Ce Template construit une VM Windows Server 2016, installe IIS, puis prépare la VM avec Sysprep.
L’installation d’IIS montre comment vous pouvez utiliser PowerShell pour exécuter des commandes supplémentaires.

Chaque outil de Template serveur a un but précis :

  • Packer est utilisé pour créer une image qui sera directement utilisée sur un ou plusieurs serveurs en production.
  • Vagrant va être utilisé pour créer des images qui vont être utilisées sur des machines de développement comme une image VirtualBox que l’on puisse démarrer depuis une machine Windows, Mac ou Linux.
  • Docker va être utilisé pour créer une image d’une application spécifique. Les images Docker peuvent être utilisées sur des machines de production ou développement.

Outils de provisionnement de serveur

Les outils de template serveur ou de gestion de configuration vont servir à définir un code qui va être exécuté sur un ou plusieurs serveurs alors que les outils de provisionnement de serveur comme Terraform, CloudFormation, OpenstackHeat, sont utilisés pour créer les serveurs en question.
Ces outils de provisionnement peuvent être utilisés pour créer des espaces de stockages, interfaces réseau, bases de données, des répartiteurs de charge (load balancer), sous-réseaux, pare-feu, etc.
Ces outils sont capables de provisionner les principaux services proposés par les différents Cloud Public.

aws-senior.com
Provisionnement de ressources à l’aide de Terraform

Terraform vs les autres

Terraform est un outil créé en 2014 par la société HashiCorp qui est aussi à l’origine du développement d’autres outils comme :

  • Consul : Service Mesh distribués permettant de connecter, sécuriser et configurer des services sur toutes les plates-formes d’exécution et les Clouds publics ou privés.
  • Vagrant : système pour configurer, distribuer et virtualiser le travail, le développement, et les environnements de production.
  • Packer : permets l’automatisation de la création de n’importe quel type d’images à partir d’un simple fichier de configuration.
  • Vault : permets de stocker des secrets de manière sécurisée, tels que vos mots de passe, vos clés privées, vos identifiants de connexion.
  • Nomad : gestionnaire de cluster et un planificateur distribué, hautement disponibles et sensibles au centre de données, qui permet de déployer des applications sur n’importe quelle infrastructure, à n’importe quelle échelle, sur site ou dans le Cloud.
  • Atlas : réunit les outils open source populaire de HashiCorp pour le développement et la gestion d’infrastructure afin de créer un système de contrôle de version pour l’infrastructure.

Terraform est un outil open source écrit en Go et repose sur une architecture basée sur les plugins. Le code Go est compilé en un seul binaire (un binaire pour chacun des systèmes d’exploitation supportés). Son code source est disponible sur Github. C’est un outil suivi de très près par une large communauté qui le met à jour très fréquemment.

Cet outil permet de construire, modifier et versionner une infrastructure. Il permet de gérer plusieurs providers au sein d’un même Template de configuration.

Il existe certains outils qui peuvent fournir les mêmes services (on peut par exemple citer l’outil CloudFormation), mais ces outils à l’inverse de Terraform sont basés sur des infrastructures précises ou propriétaires. En effet, CloudFormation est un outil permettant de provisionner des ressources à travers du code, mais seulement avec le Cloud AWS (Amazon Web Services).

Terraform propose lui, une transparence totale vis-à-vis des plateformes sur lesquelles il opère.
Par défaut, il supporte plusieurs « Cloud providers » comme Amazon Web Services, Microsoft Azure ou Google Cloud Plateform (les références du Cloud public). Ainsi, Terraform peut provisionner des ressources sur chacun des Cloud providers séparément ou conjointement.
Le langage utilisé pour développer des ‘scripts’ Terraform est le HCL (HashiCorp Configuration Language) et le JSON. Le HCL est un langage propre à Terraform qui se veut plus lisible et facilement compréhensible pour les utilisateurs.

Share this:

  • Facebook
  • LinkedIn
  • Twitter
aws-senior

aws-senior

http://www.aws-senior.com/

Aws-Senior.com

Aws-Senior.com
ADVERTISEMENT
  • Trending
  • Comments
  • Latest
Use our free ssl american proxy server update-update-2020-06-09

Fresh Proxy Lists update 2020-06-15

15 June 2020
HTTP Socks4 and Socks5 proxy lists-update

Fresh Proxy Lists update 2020-07-10

14 July 2020
How To Import A Schema on Amazon RDS

How To Import A Schema on Amazon RDS

5 April 2019
Install the AWS CLI on Windows

Install the AWS CLI on Windows

16 March 2019
probable Oracle Net admin error

ORA-16795: the standby database needs to be re-created

2

Overview of Amazon Web Services

1

Senior Account Manager – Middle East Public Sector

1
aws-senior.com

AWS Certified Solutions Architect – Niveau Professionnel

1
sellers.json

sellers.json

10 September 2020
Step-by-Step Tutorial for Apache Spark Installation

Apache Spark Deployment

3 September 2020
Apache Spark Installation

Step-by-Step Tutorial for Apache Spark Installation

3 September 2020
PySpark et le traitement des Big Data

Apache Spark

2 September 2020

Recent News

sellers.json

sellers.json

10 September 2020
Step-by-Step Tutorial for Apache Spark Installation

Apache Spark Deployment

3 September 2020
Apache Spark Installation

Step-by-Step Tutorial for Apache Spark Installation

3 September 2020
PySpark et le traitement des Big Data

Apache Spark

2 September 2020
AWS Certified Solutions Architect – Professional

aws-senior.com . Find user guides, developer guides, API references, tutorials, and more. Guides and API References. Compute. Amazon EC2 · AWS Batch

Follow Us

Facebook Twitter Instagram Behance Google+ Dribbble

Browse by Category

  • Apps (21)
  • aws-senior (277)
  • Business (21)
  • Entertainment (2)
  • Fashion (18)
  • Food (13)
  • Gadget (25)
  • Gaming (14)
  • Health (18)
  • Lifestyle (10)
  • Mobile (21)
  • Movie (9)
  • Music (12)
  • News (16)
  • Politics (20)
  • Review (14)
  • Science (16)
  • Sports (14)
  • Startup (23)
  • Tech (21)
  • Travel (20)
  • World (16)

Recent News

sellers.json

sellers.json

10 September 2020
Step-by-Step Tutorial for Apache Spark Installation

Apache Spark Deployment

3 September 2020
  • Devops AWS
  • Git Tutorial
  • Hadoop Tutorial
  • Apache Spark
  • Docker
  • Amazon RDS
  • Blockchain
  • BIG-DATA
  • AWS-Architect
  • COVID-19
  • Proxy List
  • AWS-Certified
  • Cloud-Computing
  • AWS certifications

© 2020 www.aws-senior.com - www.aws-senior.com www.aws-senior.com.

No Result
View All Result

© 2020 www.aws-senior.com - www.aws-senior.com www.aws-senior.com.