4
4

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.

vagrant up時にansibleで開発環境を作る

Posted at

すろっくさんだよ。

時代はDockerですね。

僕はVagrantつかったりします。そこは好き好きですね。チームのリーダーには「なんでDockerじゃねえんだ」って怒られるかもしれないので、家でなにも考えなくてよいときにこのドキュメントみてください。

何をしたいの

とりあえずvagrant upしたらそれっぽい開発環境をつくりたいです。

やりかた

僕Rails好きなんでRails参考に。

なんかプロジェクトつくります。

$ rails new sampleproject

vagrantの設定ファイルを作ります。

$ ce sampleproject
$ vagrant init

vagrant開きます。

$ vi Vagrantfile

最後くらいにこんなのつけたしてください。

  config.vm.provision "ansible_local" do |ansible|
    ansible.playbook = "provision/vagrant.yml"
  end

軽く解説すると、vmの構築時にansibleを走らせて、指定されたplaybookを実行する、というものです。
ここだとprovision/vagrant.ymlを指定してます。

playbookのパスとかどうでもいいんですけど、僕はRailsのプロジェクトの中に含めてます。使いまわしてもいいんですけど、自分以外の誰かが開発することを考えると他のところにおくのは好きじゃないです。

playbookのファイルをおきます。

$ mkdir provision
$ vi vagrant.yml

playbookを適当に書きます。


- name: provisioning
  hosts: all
  become: yes
  gather_facts: False
  max_fail_percentage: 0
  vars:
    app_path: /vagrant
    home: /home/vagrant
    ruby_version: 2.5.1
  tasks:
    - name: set timezone to Asia/Tokyo
      timezone:
        name: Asia/Tokyo
    - name: add epel
      yum:
        name: epel-release
        state: latest
    - name: add mysql repo
      yum:
        name: http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
        state: present
    - name: add nodejs repo
      yum:
        name: https://rpm.nodesource.com/setup_8.x
        state: present
    - name: yum update
      yum:
        disablerepo: mysql57-community
        name: "*"
        state: latest

あとはvagrant起動して終わりです。

$ vagrant up

ansibleの勉強がてらとかやってみてもいいかもしれません。

4
4
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
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?