2024.11.14
いまさらNode.jsを知ろう~環境構築も~
2015.07.01
開発環境・ツールVagrant + Ansible(Mac)
こんにちは、KTです。
Vagrant + chef で、環境構築の自動化を進めていたんですが、時代はAnsibleという話を聞いたので乗り換えてみました。
ちなみに、今回はMacにて実施しています。
※Windowsでも以降で紹介するPlaybook等の情報はそのまま利用出来ると思います。
VirtualBoxを使った仮想環境を一元管理できる便利ツール。
仮想環境の構築から立ち上げ、コピーなどをコマンドで簡単に行える。
構成管理ツールの1つ。ChefとかPuppetとかの仲間。
ymlファイルで構成を管理できるので便利。
まずは、Vagrantの利用環境を整えましょう。
$ vagrant box add {box_name} {box_file_name} # BOXファイルを登録する $ cd /path/to/vagrant_work_dir # Vagrantの仮想マシンを立ち上げるディレクトリに移動 $ vagrant init {box_name} # Vagrantfileの作成
これで、カレントディレクトリにVagrantファイルが生成されているかと思います。
次に、Vagrantファイルに、Ansibleを利用するための記述をしていきましょう。
Vagrant.configure(2) do |config| config.vm.box = "box_name" config.vm.network "private_network", ip: "192.168.33.10" # Ansible config.vm.provision :ansible do |ansible| ansible.playbook = "main.yml" ansible.limit = "all" end end
2行目はboxファイルの設定、3行目はプライベートIP(ホストOSからアクセスするためのIP)です。
今回のメイン、Ansibleの設定は5行目以降です。
config.vm.provision に :ansible を指定することで、Ansibleを利用して構築してくれるようになります。このdo ~ endの中に、Ansibleの設定を書いていきます。
Ansibleでは、構成を管理するファイルをPlaybookというため、7行目でPlaybookを指定しています。今回は Vagrantfile と同じディレクトリに main.yml というファイル名でPlaybookを配置します。
これで、VagrantからAnsibleを使用するための準備は完了です(早い!簡単!
次にAnsibleのPlaybookを書いていきましょう。「VagrantでAnsible使うぜ」ってなっても、Ansible側で何もしなければ意味ないですからね。
上述の通り、今回は Vagrantfile と同じディレクトリに main.yml というファイルを作ります。
まずはお試しで、yum で httpd をインストールしてみましょう。
- hosts: all user: vagrant tasks: - name: install sudo: true yum: name=httpd state=present
はい。これだけです。簡単ですね。説明も要らないほど簡単だと思いますが、さらっと説明していきましょう。
まず1行目は今回はおまじないです。Vagrantから利用するときはこれでOKです。他の用途で使うときにはhostsを考えたり、他にファイル作ったりが必要になります。
2行目はAnsibleでタスクを実行するときに使うユーザ名です。
3行目以降から、Ansibleで実行するタスクを記載していきます。
基本的には、
tasks: - name: {タスク名} {タスクで実行する内容} - name: {タスク名} {タスクで実行する内容}
のように、タスクを並べて記載することで、上から順次実行していきます。
上の例では、yumを実行するタスクを書きましたが、他に
shell実行
- name: install vim shell: ./configure {{ vim_configures }} && make && make install chdir=/usr/local/src/vim
git clone実行
- name: git clone ag sudo: true git: repo=git://github.com/ggreer/the_silver_searcher.git dest=/usr/local/src/the_silver_searcher accept_hostkey=yes
ファイル変更
- name: set ll command lineinfile: dest=~/.bashrc line="alias ll='ls -sla'"
のような感じで、様々なコマンドが用意されています。
全部は紹介しきれないので、興味のある方は調べてみてください。
話を戻しましょう。main.yml が作成できたら、
vagrant up
を実行して、仮想マシンを起動しましょう。
通常の仮想マシンの起動後に、main.yml で指定したタスクが実行され、httpd がインストールされているかと思います。
あとは、自分の思い通りに、AnsibleのPlaybookを作成して、快適なVagrantの日々を過ごしてください。
次回はもう少しAnsibleのPlaybookの書き方に突っ込んでいきたいと思います。
でわでわ。
【記事への感想募集中!】
記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!【テクノデジタルではエンジニア/デザイナーを積極採用中です!】
下記項目に1つでも当てはまる方は是非、詳細ページへ!Qangaroo(カンガルー)
【テクノデジタルのインフラサービス】
当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。
最近の記事
タグ検索