1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ansible実行手順と、簡単なチュートリアル

Posted at

Ansibleの実行処理

1,インベントリの中からターゲットノードを見つける
2,コントロールノードでプレイブックをpythonのコードに変換
3,コントロールノードからターゲットノードへssh接続、pythonのコードを送信
4,ターゲットノードでpythonのコードを実行、出力結果をコントロールノードに返す
5,コントロールノード、ターゲットノードにあるpythonのコードを削除

という手順を踏んで実行されます。
ここで、プレイブックとインベントリはそれぞれ以下のような意味になりませす。

プレイブックとインベントリ

プレイブック・・・処理の流れを定義したファイル。Chefでいう、recipe,
Puppetでいう、manifestに相当するファイル

YAML形式で書かれるため、コーディング経験がない人でも容易にかける
・インベントリ・・・ターゲットノードの情報が書かれたファイル

スクリーンショット 2019-05-11 22.50.55.png

では、簡単なサンプルを実行してみます。
まずは、vagrantで3つの仮想環境を立ち上げましょう。

Vagrantfile
Vagrant.configure("2") do |config|
  config.vm.define "host" do |node|
    node.vm.box = "bento/centos-7"
    node.vm.hostname = "host"
    node.vm.synced_folder "host", "/vagrant"
    node.vm.network :private_network, ip: "192.168.33.11"

    node.vm.provision "shell", inline: <<-SHELL
      sudo yum -y install epel-release
      sudo yum install -y gcc python-pip python-devel openssl-devel libffi-devel
      sudo pip install --upgrade pip setuptools
      sudo pip install ansible
    SHELL

  end

  config.vm.define "web" do |node|
    node.vm.box = "bento/centos-7"
    node.vm.hostname = "web"
    node.vm.synced_folder "web", "/vagrant"
    node.vm.network :private_network, ip: "192.168.33.12"
  end

  config.vm.define "db" do |node|
    node.vm.box = "bento/centos-7"
    node.vm.hostname = "db"
    node.vm.synced_folder "db", "/vagrant"
    node.vm.network :private_network, ip: "192.168.33.13"
  end

end

ここからは、host(192.168.33.11)がコントロールノード、web(192.168.33.12)とdb(192.168.33.13)がターゲットノードという形です。

$vagrant up
$vagrant ssh host

でhostに入ります。
ここで、hostからweb,dbにそれぞれsshで接続するために、鍵の設定をしていきます。

鍵の設定

<仮想環境hostで>

# 秘密鍵、公開鍵の作成
$ssh-keygen -t rsa
# 全てにenterでok
# 仮想環境host(コントロールノード)に公開鍵登録
$ssh-copy-id localhost
# パスワード vagrant

# (ターゲットのーど)仮想環境web(192.168.33.12)に公開鍵登録
$ssh-copy-id 192.168.33.12
# パスワード vagrant

# (ターゲットのーど)仮想環境db(192.168.33.13)に公開鍵登録
$ssh-copy-id 192.168.33.13
# パスワード vagrant

これで,hostから
「ssh 192.168.33.12」や「ssh 192.168.33.13」のような形で接続可能になったはずです。
(つまり,「3,コントロールノードからターゲットノードへssh接続、pythonのコードを送信」の段階を踏めるようになったということ)

hostの中で、/vagrant以下に行って、

$cd /vagrant

sample_inventory.iniを作成

sample_inventory.ini
[host]
localhost

[web]
192.168.33.12

[db]
192.168.33.13

ここまでで設定は終了です。

以下のコマンドを実行し、sample_inventory.iniで定義した各ノードに対してpingコマンドを実行し、値が帰ってくるか確認します。

$ ansible all -i sample_inventory.ini -m ping

192.168.33.12 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
192.168.33.13 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
localhost | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

上記のようになっていればOKです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?