Windows 用户可以先打开 Powershell,Mac 用户打开终端,然后先进入到你想保存项目的地方 ... 用 Git 先去克隆一份自动化配置本地开发环境的仓库 ... git clone ,地址是 https://github.com/ninghao/playbook.git ... 这里我要创建的项目叫 ninghao.tv ,所以可以把这个项目放到这个目录的下面 ...
git clone https://github.com/ninghao/playbook.git ninghao.tv
完成以后,在我的桌面上会创建一个目录 ... 叫 ninghao.tv ... 进入到这个目录里面 ... cd ninghao.tv ... ls 查看一下这里面的东西 ... README.md 是一个说明文件,Vagrantfile 是配置虚拟机用的文件,playbooks 是为配置虚拟机配置开发环境用的一套脚本。
先用编辑器打开这个目录 ... atom ./ 这里我用的是 Atom 编辑器 ... 打开 Vagrantfile ..
这里的 config.vm.box 后面的指定的是虚拟机使用的 box ,这里是 ninghao/playbook-64 ,它是一个基于 CentOS 7 做的 box ,里面安装好了大部分开发环境需要的软件,所以在配置的时候,会节省一些时间。
如果你的本地电脑上还没有这个 box ,Vagrant 会自动到 Atlas 上去下载它 ... 在国内可能会比较慢,所以,推荐你可以手工把这个 box 下载下来,然后再把它添加到电脑里。下载的地址你可以在这个视频的介绍里面找到。
再往下看 ... 这里我定义了三台虚拟机,Master , Local ,还有 Dev ... Master 这台虚拟机的主要功能就是去配置 Local 还有 Dev 这两台虚拟机,在后面的视频里我们会介绍到具体的方法 .. 它的名字是 master,网络用的是私有网络,IP 地址是 192.168.33.111 ... 下面用到了一个简单的自动化配置,这行配置的意思就是,当启动 Master 虚拟机的时候,把 playbooks/files/shell 下面的 master.sh 这个脚本复制到虚拟机上执行一下 ...
我们可以打开这个文件看一下 ... command + p, 搜索一下项目里的 master.sh ... 这里就两行代码,首先是去安装一下 ansible ,这个是我们要自动化配置另外两台虚拟机用的工具。
然后会把 /vagrant/playbooks/inventory 这个文件,复制到 master 这台虚拟机的 /etc/ansible/ 下面,并且重命名为 hosts ...
在这个文件里面描述了需要使用 ansible 配置的服务器是谁 ... command + p ,搜索一下 inventory ... 然后打开这个文件再看一下 ..
这个文件把需要配置的服务器分成了两个组,一个叫 local ,这里有一个叫 local 的主机, ip 地址是 192.168.33.130 ... 一会儿在 master 这个主机上使用 ansible 的时候,可以使用 local 这个名字 ...
下面是一个 dev 分组,里面也有一台主机, ip 地址是 192.168.33.131 ... 这两个 ip 地址,是我们在虚拟机的配置文件,Vagrantfile 里面给 local 还有 dev 分配的 ip 私有的 ip 地址。
也就是如果你修改了 Vagrantfile 里面的虚拟机的 ip 地址,在这个 inventory 文件里面,你也需要修改一下。
local
在 Vagrantfile 里面除了定义了 master 这个虚拟机以外,还有两台虚拟机, local 还有 dev ,一会儿我再解释为什么要这样。再看一下 local 这个虚拟机,名字是 local,你可以使用这个名字去控制这台虚拟机,比如启动,停止,连接等等。然后配置了一下它的网络,给它一个私有的 IP 地址是 192.168.33.130 ... 下面这个 synced_folder ,指定了一下这台虚拟机跟主机之间的共享目录 ... 在主机这个目录是当前目录下的 app/local,在虚拟机上是 /vagrant ... 后面的 create: true ,意思就是如果目录不存在,就自动为你去创建一个。
然后在下面又定义了这台虚拟机可以使用的内存 ... 这里设置成了 1024M,也就是 1G 的内存。
dev
下面这台叫 dev 的虚拟机跟 local 的配置的形式是一样的,只不过使用的名字,ip 地址,还有共享目录不一样 ...