すろっくさんだよ。
時代は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の勉強がてらとかやってみてもいいかもしれません。