使用 Vagrant 和 Ansible 快速构建开发环境

使用Vagrant和Ansible快速构建开发环境。
在公司,当需要时,我们使用这种方法构建开发环境。
这次我们将尝试自动化到显示 “Hello World!” 的Web服务器。

目标

    • Ansible初心者

 

    Ansibleに興味がある人

上一篇文章

    • Vagrant Boxをイチから作る!(備忘録)

 

    Vagrant入門

事前准备

    • Ansible用サーバと、開発用サーバをVagrantで作っておきます

 

    • 本記事では下記の設定を前提に書いています

Ansible用サーバ(192.168.33.10)
開発用サーバ(192.168.33.11)

将Ansible安装到服务器上。

添加EPEL存储库。

    Minimal InstallだとEPELリポジトリがないので追加します
$ sudo yum -y install epel-release
    ansibleのインストール
$ sudo yum -y install ansible

ansible-playbook 的描述

文件结构图

- hosts
- playbook.yml
- roles
  - httpd
    - tasks
      - main.yml
    - templates
      - index.html.j2

主持人的说明

$ vim hosts
[develop]
192.168.33.11

playbook.yml的内容

$ vim playbook.yml
- hosts: all
  remote_user: vagrant
  sudo: yes
  roles:
   - httpd

主要.yml的内容

$ mkdir roles
$ mkdir roles/httpd
$ mkdir roles/httpd/tasks
$ mkdir roles/httpd/templates
$ vim roles/httpd/tasks/main.yml
- name: httpd install
  yum: name=httpd state=latest

- name: service httpd start
  service: name=httpd state=started enabled=yes

- name: set index.html
  template: src=index.html.j2 dest=/var/www/html/index.html backup=yes
$ vim roles/httpd/templates/index.html.j2
<h1>Hello World!</h1>

执行ansible-playbook

执行目标的通讯确认

$ ansible develop -i hosts -m ping -k
The authenticity of host '192.168.33.11 (192.168.33.11)' can't be established.
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? yes
SSH password: vagrant
192.168.33.11 | success >> {
    "changed": false, 
    "ping": "pong"
}

确认执行对象

$ ansible-playbook -l develop playbook.yml -i hosts --list-host

playbook: playbook.yml

  play #1 (all): host count=1
    192.168.33.11

执行剧本。

$ ansible-playbook -l develop playbook.yml -i hosts -k -K
SSH password: vagrant
SUDO password[defaults to SSH password]: varant

PLAY [all] ******************************************************************** 

GATHERING FACTS *************************************************************** 
ok: [192.168.33.11]

TASK: [httpd | httpd install] ************************************************* 
changed: [192.168.33.11]

TASK: [httpd | service httpd start] ******************************************* 
changed: [192.168.33.11]

TASK: [httpd | set index.html] ************************************************ 
changed: [192.168.33.11]

PLAY RECAP ******************************************************************** 
192.168.33.11              : ok=4    changed=3    unreachable=0    failed=0   

只需一个翻译选项:
在开发服务器上确认

http://192.168.83.11/ にアクセスし、Hello World!と表示されれば成功!

应用

我将Web应用服务器和数据库服务器分开,并编写了一个能够自动构建应用和数据库的ansible-playbook。我将它公开在我的GitHub上,欢迎您查看。
https://github.com/kkarakawa/scraping-ansible

关于已完成的应用程序,不接受任何评论。

广告
将在 10 秒后关闭
bannerAds