使用Vagrant和Ansible

简介

Vargrant是一个管理虚拟机环境的工具,允许你在不同的虚拟化和云平台 配置和使用可再生的工作环境.它也集成了Ansible作为对虚拟机的服务提供者,而且这两个工具配合的很好.

这个指南会叙述如何同时配合使用Vagrant和Ansible.

如果你对Vagrant还不了解,你应该看看这个文档 the documentation.

假设你已经安装了Ansible,在Git上检测,运行的也很好,查看下面的:doc:intro_installation 获取更多的信息.

配置Vagrant

第一步安装了Vagrant之后,创建一个 Vagrantfile ,修改它来适应你的需要.Vagrant文档里面已经包含了很多细节了,这里仅仅给出一个快速的参考实例

$ mkdir vagrant-test
$ cd vagrant-test
$ vagrant init precise32 http://files.vagrantup.com/precise32.box

这会创建名称为 Vagrantfile 的文件,你可以编辑它适应你的需要.默认的Vagrantfile有很多注释.这里是一个简化的例子包括了一个使用ansible提供服务的部分.

#Vagrant API/syntax 版本.不要修改它除非你知道你自己在做什么.

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    config.vm.box = "precise32"
    config.vm.box_url = "http://files.vagrantup.com/precise32.box"

    config.vm.network :public_network

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

Vagrantfile 有很多选项,但这些是最重要的.注意 config.vm.provision``部分,引用了叫做``playbook.yml的 Ansible playbook,它与Vagrantfile的在同样的目录里面.Vagrant 一旦虚拟机启动和已经准备好了ssh访问的时候.运行这个提供的服务(prvisoner)

$ vagrant up

这将会启动VM和运行提供的playbook文件.

在你的Vagrantfile里面,有许多Ansible选项可以配置.有用的选项有 ansible.extra_varsansible.sudo 和 ansible.sudo_user , 和可以避免SSH对新的虚拟机的连接问题的 ansible.host_key_checking

查看 Ansible Provisioner documentation 获取更多信息

重新运行一个在已存在的VM上的playbook,运行

$ vagrant provision

这将会重新运行playbook

手动运行Ansible

有时你想手动运行Ansible,而不是机器.这相对来说很简单.

Vargrant自动的为Vagrant机器创建清单文件,存在相同的目录下面 .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory.它根据Vagrant自动创建的SSH管道配置清单文件,执行``ansible-playbook`` 使用正确的用户名和SSH密钥选项来访问.一个典型的自动创建清单文件的例子看起来就像下面这样.

# Generated by Vagrant

machine ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222

如果你想运行Ansible手动的,你会想确保是否传递给``ansible`` 或者 ansible-playbook 命令正确的参数,和自动生成了清单文件.

这是一个例子

$ ansible-playbook -i .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory --private-key=.vagrant/machines/default/virtualbox/private_key -u vagrant playbook.yml

注意:Vagrant地域1.7.0的版本会使用私钥位于``~/.vagrant.d/insecure_private_key.``

See also

Vagrant Home
The Vagrant homepage with downloads
Vagrant Documentation
Vagrant Documentation
Ansible Provisioner
The Vagrant documentation for the Ansible provisioner
Playbooks
An introduction to playbooks

NextPrevious

原文地址:https://www.cnblogs.com/kevinX/p/8340750.html

时间: 2024-10-09 00:34:46

使用Vagrant和Ansible的相关文章

在WINDOWS上通过VAGRANT练习ANSIBLE

有点曲折,但没办法,还要通过VAGRANT里的ANSIBLE建DOCKER呢.. VagrantFile # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure(2) do |config| config.vm.box = "ubuntu/trusty64" if (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil config.vm.synced_

如何拥有一个自己的Vagrant box

这是一个关于Vagrant的学习系列,包含如下文章: Vagrant入门 创建自己的Vagrant box 用Vagrant搭建Jenkins构建环境 用Vagrant和Ansible搭建持续交付平台 在上一篇中,我们讲到了Vagrant的基本使用,在本文中我们将尝试创建自己的Vagrant box. 本文源代码:https://github.com/davenkin/vagrant/tree/master/ubuntu1604-jdk1.8-tomcat8 Vagrant box只是提供了一个

试用ansible

环境 Windows8 Virtual box vagrant 试用 ansible 安装虚拟机 vagrant box add chef/centos-6.5 vagrant init chef/centos-6.5 修改Vagrantfile config.vm.define :node1 do |node| node.vm.box = "chef/centos-6.5" node.vm.network :forwarded_port, guest: 22, host: 2001,

11111111111

看了开涛的Nginx+Lua开发教程,很是感兴趣.所以,自己也把环境搭建起来玩. 跟开涛的不同,我使用Vagrant + Ansible来搭建(不要问我为什么不使用Docker).这样,所有的人只要两条命令就可以搭建好了,而不需要手工一条命令一条命令打. 所谓使用Openresty来做读服务,是指Openresty直接从数据源读数据,然后渲染输出,而不经过应用服务器,比如Tomcat服务器.Openresty 是一个基于Nginx和LuaJIT的动态Web开发平台.我不知道京东是否是直接使用Op

001_vagrant利器

一. 这是一个关于Vagrant的学习系列,包含如下文章: Vagrant入门 http://www.cnblogs.com/davenkin/p/vagrant-virtualbox.html 创建自己的Vagrant box http://www.cnblogs.com/davenkin/p/create-own-vagrant-box.html 用Vagrant搭建Jenkins构建环境 http://www.cnblogs.com/davenkin/p/vagrant-jenkins-m

Docker到底是什么?为什么它这么火!

转载来自:http://cloud.51cto.com/art/201410/453718.htm 摘要:Docker这种新的容器技术可谓热得发烫,因为有了它,人们就有可能让数量多得多的应用程序在同样的旧服务器上运行:有了它,人们也很容易封装和交付程序.本文旨在帮助你进一步了解Docker 如果你是数据中心或云计算IT圈子的人,这一年多来应该一直在听到普通的容器.尤其是Docker,关于它们的新闻从未间断过.Docker1.0在今年6月发布后,声势更是达到了前所未有的程度. 动静之所以这么大,就

微服务架构必读书单

关注微信公众号[异步图书]每周送书 <深入理解Spring Cloud与微服务构建>方志朋 著 点击书名购买纸书 谈到微服务,大家众说纷纭,但却很难有一个清晰的概念来描述.微服务不是"银弹",我理解的微服务是一种文化,而我们要做的就是将微服务的理念运用到实际开发中.经过一系列的技术选型,最终Spring Cloud凭借其成熟的组件.完善的一站式解决方案,最终成为了我们落地微服务的选择. 此时的Spring Cloud相关资料在国内还是凤毛麟角,没有完整的中文书籍和教程可以参

想成为软件架构师,一定要看的经典书单

点击图片购书 参与文末话题讨论,每日赠送异步图书 --异步小编 互联网的发展带动了各行各业信息化的趋势,一大批高新企业如雨后春笋般出现在大众的视野中.于是,不同类型的软件项目应运而生.在这些琳琅满目的项目中,有企业管理.电商平台.财务报表.金融银行.医疗器械.智慧城市和大数据分析等类型.项目的层出不穷带来了巨大的利润,让高新企业不断地成长起来,与此同时,也带来了很多相关的就业岗位. 当然,要顺利地完成这些项目,就需要大量的软件工程师.这种硬性的需求又养活了一大批培训机构,从事软件行业的人员当初是

Ansible + Vagrant + Expressjs

据某大牛说,Ansible比chef.puppet都好使.学习一下怎么样用ansible provisioning 一个vagrant管理的虚拟机,用来启动expressjs的服务器.github链接:https://github.com/kiwiwin/ansible-nodejs-demo 创建一个呆呆的expressjs工程 $ express nodejs-ansible $ cd nodejs-ansible $ npm install 验证服务器可以work $ npm start