[Ansible]vagrantで作成したVMへansibleコマンドを実行するためのhosts設定

カテゴリ: Ansible, Vagrant

Ansibleで、vagrantで作成したVMに対してansibleコマンドを実行するための設定例です。

Vagrantfile

まずは、vagrant側の設定ファイルであるVagrantfileを作成します。

今回の例ではCentOS8.0を指定していますが別のOSでも問題ありません。CentOS8.0ではデフォルトでpythonが入らないのでconfig.vm.provisionでpythonコマンドをインストールしています。また、AnsibleからsshログインさせやすいようにIPアドレスを指定しています。

Vagrant.configure("2") do |config|
  config.vm.box         = "generic/centos8"
  config.vm.box_version = "2.0.6"

  config.vm.network "private_network", ip: "192.168.33.90"
  config.vm.provision "shell", inline: <<-SHELL
    dnf -y install python36
  SHELL
end

vmの作成

作成したVagrantfileでVMを起動します。

$ vagrant up

起動したVMへのログインできるssh keyfileの場所を確認します。

$ vagrant ssh-config | grep IdentityFile
  IdentityFile ..../.vagrant/machines/default/virtualbox/private_key

作ったサーバにvagrant sshではなく、sshコマンドで接続できることを確認します

$ ssh vagrant@192.168.33.90 -p 22 -i .vagrant/machines/default/virtualbox/private_key

Last login: Sun Mar 15 09:06:22 2020 from 192.168.33.1
[vagrant@centos8 ~]$

Ansibleのhosts設定

ansibleのhostsファイルを作成します。HOSTNAME:varsでvagrantへの接続設定を記載します。

[vagrant]
192.168.33.90

[vagrant:vars]
ansible_ssh_host=192.168.33.90
ansible_ssh_port=22
ansible_ssh_user=vagrant
ansible_ssh_private_key_file=PATH_TO_VAGRANT/.vagrant/machines/default/virtualbox/private_key

接続確認

Ansibleのpingモジュールで接続できることを確認します。

$ ansible vagrant -m ping
192.168.33.90 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": false,
    "ping": "pong"
}
こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。