Présentation de serverspec à Linux

Introduisez serverspec dans l'environnement Linux.

Construire un environnement Linux

Créez un environnement Linux. https://qiita.com/mkuser9/items/079cc4244821c8e220c2

installer ruby

Les spécifications du serveur nécessitent ruby.

console


$ sudo yum -y install git
$ sudo yum install -y gcc gcc-c++ libyaml-devel libffi-devel libxml2 libxslt libxml2-devel libslt-devel
$ sudo yum install git-core
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l
$ source ~/.bash_profile
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
$ sudo yum install -y bzip2 gdbm-devel openssl-devel libffi-devel libyaml-devel ncurses-devel readline-devel zlib-devel
$ RUBY_CONFIGURE_OPTS=--disable-install-doc ~/.rbenv/bin/rbenv install 2.6.3
$ rbenv global 2.6.3 && rbenv rehash

Créer un Gemfile

Créez un Gemfile et ajoutez "gem".

console


$ sudo vi Gemfile

Gemfile


source "https://rubygems.org"

gem 'serverspec'
gem 'rake'

console


$ bundle install

Installer serverspec

Installez serverspec avec la commande suivante.

console


$ gem install serverspec

Créer un exemple de test

console


$ serverspec-init

Select OS type:

  1) UN*X
  2) Windows

Select number: 1

Select a backend type:

  1) SSH
  2) Exec (local)

Select number: 2

Vagrant instance y/n: n
Input target host name: www.example.jp
 + spec/
 + spec/www.example.jp/
 + spec/www.example.jp/sample_spec.rb
 + spec/spec_helper.rb
 + Rakefile
 + .rspec

Décrivez le contenu du test

Le fichier de test est généré dans spec / localhost / sample_spec.rb, donc modifiez le fichier de test en fonction du contenu du test.

console


vi spec/localhost/sample_spec.rb

Écrivez le test dans sample_spec.rb.

sample_spec.rb(sample)


require 'spec_helper'

describe "Tester git" do
  context "Cadre environnemental" do
    describe package('git'), :if => os[:family] == 'redhat' do
      it "installée" do
        expect be_installed
      end
    end
  end
end

describe "git-Tester le cœur" do
  context "Cadre environnemental" do
    describe package('git-core'), :if => os[:family] == 'redhat' do
      it "installée" do
        expect be_installed
      end
    end
  end
end

describe "Test pour httpd" do
  context "Cadre environnemental" do
    describe package('httpd'), :if => os[:family] == 'redhat' do
      it "installée" do
        expect be_installed
      end

      it "Activée" do
        expect be_enabled
      end

      it "Fonctionnement" do
        expect be_running
      end
    end
  end
end

describe "Tester le port" do
  context "Cadre environnemental" do
    describe port(80) do
      it "Être écouté" do
        expect be_listening 
      end
    end
  end
end

État initial de sample_spec.rb.

sample_spec.rb(default)


require 'spec_helper'

describe package('httpd'), :if => os[:family] == 'redhat' do
  it { should be_installed }
end

describe package('apache2'), :if => os[:family] == 'ubuntu' do
  it { should be_installed }
end

describe service('httpd'), :if => os[:family] == 'redhat' do
  it { should be_enabled }
  it { should be_running }
end

describe service('apache2'), :if => os[:family] == 'ubuntu' do
  it { should be_enabled }
  it { should be_running }
end

describe service('org.apache.httpd'), :if => os[:family] == 'darwin' do
  it { should be_enabled }
  it { should be_running }
end

describe port(80) do
  it { should be_listening }
end

Lancer le test

Exécutez le test avec la commande suivante.

console


$ rake spec

Recommended Posts

Présentation de serverspec à Linux
[Linux] Introduction à Linux
Commandes Linux à retenir
Présentez elpy à emacs
Introduisez PyQt5 sur MacOS (Linux peut également être utilisé)
[Windows] RDP vers Windows via Linux
Une super introduction à Linux
[Linux] Bienvenue en mode d'urgence!
J'ai essayé de réintroduire Linux
J'ai essayé de présenter Pylint
Copie facile dans le presse-papier sous Linux
Commande pour créer Linux Live USB
Un mémorandum pour passer à Manjaro Linux
Comment installer VMware-Tools sur Linux
Essayez d'introduire le thème sur Pelican
Comment installer MBDyn (Linux Ubuntu)
[linux] commande kill pour tuer le processus
Road to Intermediate Linux: Network Edition
Linux
Introduire de force la traduction en temps réel dans Zoom
Présentation d'Amplify à Amazon Linux 2 AMI
Commandes Linux liées au code de caractère
Comment vérifier la version du système d'exploitation Linux
[Windows] Transférer les journaux d’événements vers Linux
Présentation de l'environnement Python 3.5.2 sur Amazon Linux
Comment créer mon propre serveur Linux
[Linux] Comment subdiviser des fichiers et des dossiers
[Rails] Comment présenter Google Analytics [Facile]
[Linux] Flux de la mise sous tension au démarrage du PC
Comment installer aws-session-manager-plugin sur Manajro Linux
[Note de lecture] Manuel standard Linux (Chapitre 1 à Chapitre 6)
Je veux savoir comment fonctionne LINUX!
[Linux] Comment utiliser la commande echo
Je veux utiliser Linux sur mac
Comment mettre à jour PHP sur Amazon Linux 2
Comment afficher des pictogrammes sur Manjaro Linux
Comment installer des packages sur Alpine Linux
Outils utilisés pour vérifier la communication réseau Linux
5 raisons d'installer Linux sur votre ordinateur portable.
Connectez-vous à GNU / Linux avec un bureau distant
Comment faire fonctionner Linux depuis la console
[Commande de commodité Linux] Essayez d'insérer vivid
Comment installer le sous-système Windows pour Linux
Comment mettre hors tension de Linux sur Ultra96-V2
Comment mettre à jour la sécurité sur CentOS Linux 8
Introduire la bibliothèque Python TRML2PDF dans MacOSX (10.11.xx)
Présentation d'un système d'entrée japonais dans Serene Linux
Comment installer php7.4 sur Linux (Ubuntu)
Sur Ubuntu Linux, définissez Tab sur q
Présentation de Docker Engine à Linux From Scratch
Installation de Arch Linux sur le système de démarrage du BIOS
Accorder des privilèges sudo aux utilisateurs Linux généraux
Comment trouver des fichiers volumineux sous Linux
[Amazon Linux] Passage de la série Python 2 à la série Python 3
Que faire après l'installation de Linux (Ubuntu)