使用Vagrant和Ansible来搭建开发环境(操作系统安装部分)

这次要进行的事情是什么

我之前在主机端搭建了ansible2的执行环境。
这次我们将使用vagrant创建虚拟环境,并进行最基本的ansible初始化。
需要注意的是,我们创建的文件可以在以下链接找到:
https://github.com/ak-ymst/vm_config

使用Vagrant来准备虚拟环境。

在使用Ansible进行配置之前,我们使用Vagrant来构建虚拟环境。 我们决定从这里(http://www.vagrantbox.es/)下载CentOS7.1作为操作系统镜像并使用。

Vagrantfile的使用如下所示。

Vagrant.configure("2") do |config|
    config.vm.provider :virtualbox do |v|
       v.name = "centos7.1"
       v.customize ["modifyvm", :id, "--memory", 3072]
    end

    config.vm.box = "centos7.1"
    config.vm.box_url = "https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.1/vagrant-centos-7.1.box"

    config.vm.network :private_network, ip: "192.168.33.100" 
    config.ssh.forward_agent = true
end

在准备好上述的Vagrantfile之后,执行以下命令。

请启动Vagrant。

确认在命令结束后(仅在初次安装时需要下载一些时间)能够使用SSH登录。

$ vagrant ssh
[vagrant@localhost ~]$ 
[vagrant@localhost ~]$ cat /etc/redhat-release 
CentOS Linux release 7.1.1503 (Core) 
[vagrant@localhost ~]$ 

对Ansible进行操作验证

首先,在 Vagrantfile 中添加以下内容以执行配置。

config.vm.provision "ansible" do |ansible|
    ansible.playbook = "ansible/playbook.yml"
    ansible.inventory_path = "ansible/hosts"
    ansible.limit = 'all'
end

ansible.inventory_path是保存目标主机清单的文件名,其内容如下所示。

[vagrant-centos7.1]
192.168.33.100

先行動作として、プレイブック中の実際のプロビジョニング内容に関しては、とりあえずyumの更新を行います。

ansible/playbook.yml 的释义:ansible/playbook.yml 是一个文件的名称或路径。

---
- hosts: all
  become: true
  roles:
    - init

ansible/roles/init/tasks/main.yml的含义是:主要任务是在初始化时执行的操作。

---
- name: yum update
  become: yes
  yum: name=* state=latest

然后,执行provision。

$ vagrant provision
==> default: Running provisioner: ansible...

PLAY ***************************************************************************

TASK [setup] *******************************************************************
ok: [192.168.33.100]

TASK [init : yum update] *******************************************************
changed: [192.168.33.100]

PLAY RECAP *********************************************************************
192.168.33.100             : ok=2    changed=1    unreachable=0    failed=0   

$

修改时区

将CentOS的默认时区从UTC更改为日本时间。

[vagrant@vagrant-centos7 ~]$ date
2016年  2月  1日 月曜日 08:12:04 GMT
[vagrant@vagrant-centos7 ~]$ ll /etc/localtime 
lrwxrwxrwx. 1 root root 35 11月  2 14:19 /etc/localtime -> ../usr/share/zoneinfo/Europe/London

请将以下内容添加到ansible/roles/init/tasks/main.yml文件中。

- name: change timezone to Asia/Tokyo
  become: yes
  file: src=/usr/share/zoneinfo/Asia/Tokyo dest=/etc/localtime state=link force=true

然后重新执行Provision。

$ vagrant provision
==> default: Running provisioner: ansible...

PLAY ***************************************************************************

TASK [setup] *******************************************************************
ok: [192.168.33.100]

TASK [init : yum update] *******************************************************
ok: [192.168.33.100]

TASK [init : change timezone to Asia/Tokyo] ************************************
changed: [192.168.33.100]

PLAY RECAP *********************************************************************
192.168.33.100             : ok=3    changed=1    unreachable=0    failed=0 

$ vagrant ssh
Last login: Mon Feb  1 17:21:47 2016 from 192.168.33.1
[vagrant@vagrant-centos7 ~]$ date
2016年  2月  1日 月曜日 17:23:44 JST
[vagrant@vagrant-centos7 ~]$ ll /etc/localtime 
lrwxrwxrwx 1 root root 30  2月  1 17:21 /etc/localtime -> /usr/share/zoneinfo/Asia/Tokyo
[vagrant@vagrant-centos7 ~]$ 

確認了時區已經被更改,我們就結束本次了。
下一次,我們將進行httpd等軟體的安裝。

广告
将在 10 秒后关闭
bannerAds