[PYTHON] [Procédure d'installation Ansible] De l'installation à l'exécution du playbook

Ce que vous pouvez réaliser avec ce post

Environnement de construction

Commun

Constitution

Qu'est-ce que ansible

Aperçu / caractéristiques

--Outil d'automatisation de la gestion de la configuration réalisé par python

terme ansible

Term Description
Inventory Spécifiez le nœud cible. Format INI
Playbook Décrivez le flux de traitement que vous souhaitez exécuter sur le nœud cible. Format YAML

Environnement

Contrôleur / Cible: Créer un utilisateur général (ansible)

Créé par des utilisateurs généraux


useradd -s /bin/bash -m ansible
passwd ansible
#Accorder des privilèges sudo
echo "ansible ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/ansible

Contrôleur: paramètre d'authentification par clé publique

su - ansible
cd ~
ssh-keygen
ssh-copy-id -i .ssh/id_rsa.pub 192.168.56.152 (Adresse IP du nœud cible)

Contrôleur: installer les packages requis

Commande d'installation


su - ansible
sudo yum -y install epel-release
sudo yum -y install gcc libffi-devel python-devel openssl-devel python-pip
sudo pip install --upgrade pip

#Non requis si virtualenv n'est pas utilisé
sudo pip install virtualenv
#Non requis si virtualenv n'est pas utilisé
cd ~
virtualenv venv
source venv/bin/activate

pip install "ansible==2.2"

Contrôleur: création d'un répertoire de travail

Créer un répertoire de travail


su - ansible
cd ~
mkdir -p practice/{inventory,{group,host}_vars,roles,playbooks}
touch practice/{inventory/inventory.ini,group_vars/all.yml}

Contrôleur: créer un fichier d'inventaire

Créer un fichier d'inventaire


su - ansible
cd ~/practice
vim inventory/inventory.ini

inventory/inventory.ini


[practice_servers]
practice01 ansible_host=192.168.56.152 #Target Node 

Contrôleur: confirmation de communication Ansible

Confirmation de la communication


#Confirmez que les informations sur le serveur du nœud cible sont renvoyées en tant que réponse
ansible practice_servers -i inventory/inventory.ini -m setup

Contrôleur: création de Playbook

Création de playbook


su - ansible
cd ~/practice
vim playbooks/initial_setting.yml

~/practice/playbooks/initial_setting.yml


---
- hosts: practice_servers
  become: yes #Implémenter sudo sur le serveur cible
  become_user: root #Effectué pour le compte de l'utilisateur root

  tasks:
    - name: 1. Set hostname
      hostname:
        name: practice01

    - name: 2. Install required packages
      yum:
        name: "{{ item }}"
      with_items: 
        - vim
        - git

Exécuter le playbook

Exécuter le playbook


su - ansible
cd ~/practice
ansible-playbook -i inventory/inventory.ini playbooks/initial_setting.yml

référence

Vagrantfile utilisé pour la construction

Controller


Vagrant.configure("2") do |config|
  # Basic VM settings
  config.vm.box = "CentOS7.0"
  config.vm.box_download_insecure = true
  config.vm.hostname = 'controller'
  config.vm.network "private_network",ip:"192.168.56.151"
	config.vm.network :public_network, bridge: 'en0: Wi-Fi (AirPort)'
  config.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2151
	config.ssh.insert_key = false

  # Virtual box setting
  config.vm.provider "virtualbox" do |vb|
    vb.customize ["modifyvm", :id, "--ostype", "Redhat_64"]
    vb.name = "ansible_controller"
    vb.memory = 512
    vb.cpus = 1
  end
end

Target_Node


Vagrant.configure("2") do |config|
  # Basic VM settings
  config.vm.box = "CentOS7.0"
  config.vm.box_download_insecure = true
  config.vm.hostname = 'practice'
  config.vm.network "private_network",ip:"192.168.56.152"
	config.vm.network :public_network, bridge: 'en0: Wi-Fi (AirPort)'
  config.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2152
	config.ssh.insert_key = false

  # Virtual box setting
  config.vm.provider "virtualbox" do |vb|
    vb.customize ["modifyvm", :id, "--ostype", "Redhat_64"]
    vb.name = "practice"
    vb.memory = 512
    vb.cpus = 1
  end
end

Recommended Posts

[Procédure d'installation Ansible] De l'installation à l'exécution du playbook
Introduction à Scapy ① (De l'installation à l'exécution de Scapy)
De l'édition à l'exécution
De l'introduction de pyethapp à l'exécution du contrat
"Moyenne des sommes de 1 à 10" et sa vitesse d'exécution
Explication de l'installation de Sphinx à l'utilisation d'un thème externe (Bootswatch)
Procédure de communication Ajax de HTML à JSON sur le serveur API
De l'installation d'Elasticsearch à la saisie des données
Installation d'OpenMPI Du téléchargement au passage
Python (de la première fois à l'exécution)
PySpark 1.5.2 + Elasticsearch 2.1.0 Procédure d'installation et exécution
Premiers pas avec Poetry De l'installation à l'exécution et à la gestion des versions
Résumé de la procédure d'installation d'Oracle Database XE
[Note] [PyTorch] De l'installation à la simplicité d'utilisation
De l'acquisition de la licence MuJoCo, du renouvellement à l'exécution
Procédure du développement AWS CDK (Python) à la construction de ressources AWS * Pour les débutants
De l'attention de Zero Tsuku 2 au transformateur
Tutoriel Flask (de l'installation à Hello World)
Résumé de vtkThreshold (mis à jour de temps en temps)
Récapitulatif des options gcc (mises à jour de temps en temps)
Paramètre pour afficher le journal de l'exécution de cron
Modifiez le point décimal de la journalisation de, à.
Comment faire fonctionner Linux depuis l'extérieur Procédure
De l'installation de ROS pour Windows au contrôle de fonctionnement
Procédure de désinstallation à réinstaller pyenv (anaconda)
Procédure de réglage de l'hydrogène de l'atome (environnement virtuel)
Histoire de passer de Pipenv à la poésie
Procédure d'installation de Pylearn 2
[Ansible] Exemple de playbook qui ajoute une chaîne de caractères à la première ligne du fichier
Somme de 1 à 10
Procédure d'installation de PostgreSQL 10.0
procédure d'installation blockdiag
Le mur lors du passage du service Django de Python 2.7 à la série Python 3
Je veux grep le résultat de l'exécution de strace
Installation de TensorFlow, une bibliothèque d'apprentissage automatique de Google
[Mis à jour de temps en temps] Examen de Let Code NumPy
Configuration de RaspberryPi3 (STRETCH) depuis l'installation du système d'exploitation vers Hello World
Procédure d'exécution de TensorFlow dans le traitement par lots de Spacon ITO
Construction de l'environnement de développement Python 2020 [De l'installation de Python à l'introduction à la poésie]
DataNitro, implémentation de la fonction de lecture des données de feuille
[Introduction à cx_Oracle] (Partie 11) Bases de l'exécution PL / SQL
Procédure pour convertir un fichier python en exe à partir de la construction de l'environnement Ubunts
Convertir les éléments du tableau numpy de float en int
[Python] Chapitre 01-02 À propos de Python (Exécution et installation de l'environnement de développement)
Procédure de la construction de l'environnement au test de fonctionnement de testinfra, un outil de test d'environnement de serveur réalisé par Python