关键词:
简介
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)
这将会启动VM和运行提供的playbook文件.
在你的Vagrantfile里面,有许多Ansible选项可以配置.有用的选项有 ansible.extra_vars
, ansible.sudo
和 ansible.sudo_user
, 和可以避免SSH对新的虚拟机的连接问题的 ansible.host_key_checking
查看 Ansible Provisioner documentation 获取更多信息
重新运行一个在已存在的VM上的playbook,运行
这将会重新运行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.``
显示完成每个 vagrant ansible 任务所需的时间
】显示完成每个vagrantansible任务所需的时间【英文标题】:Displaythetimeittakeseachvagrantansibletasktocomplete【发布时间】:2013-11-2008:40:57【问题描述】:我正在将vagrantprovisioner从shell转换为ansible,我想知道是否有任何选项可以显示完成... 查看详情
vagrant 上的 Ansible 错误中没有模块名称 Yum
】vagrant上的Ansible错误中没有模块名称Yum【英文标题】:NoModulenameYuminAnsibleErroronvagrant【发布时间】:2017-02-2801:29:09【问题描述】:我正在UbuntuVagrant机器上尝试使用Ansible剧本进行一些实验。我编写了一个名为exampleyum.yml的简单剧... 查看详情
在windows上通过vagrant练习ansible
有点曲折,但没办法,还要通过VAGRANT里的ANSIBLE建DOCKER呢。。VagrantFile#-*-mode:ruby-*-#vi:setft=ruby:Vagrant.configure(2)do|config|config.vm.box="ubuntu/trusty64"if(/cygwin|mswin|mingw|bccwin|wince|emx/=~RUBY_PLATFORM)! 查看详情
如何拥有一个自己的vagrantbox
这是一个关于Vagrant的学习系列,包含如下文章:Vagrant入门创建自己的Vagrantbox用Vagrant搭建Jenkins构建环境用Vagrant和Ansible搭建持续交付平台在上一篇中,我们讲到了Vagrant的基本使用,在本文中我们将尝试创建自己的Vagrantbox。本文... 查看详情
Ansible 服务重启失败
...题。我正在使用截至2015年5月11日的最新软件(Ansible1.9.1/Vagrant1.7.2/VirtualBox4.3.26/主机:OSX10.10.1/访客:ubuntu/trusty64)tl;dr:我调用服 查看详情
大数据集群环境搭建(代码片段)
...简单2.3.三种工具的部署方式3.自动创建虚拟机3.1.什么是Vagrant3.2.安装Vagrant和概念介绍3.3.使用Vagrant构建一个虚拟机集群4.自动化部署服务(了解,运维领域)4.1.痛点和Ansible4 查看详情
如何在不更改 .rb 文件的情况下通过 Vagrantfile 扩展 vagrant 插件?
】如何在不更改.rb文件的情况下通过Vagrantfile扩展vagrant插件?【英文标题】:HowtoextendavagrantpluginthroughVagrantfilewithoutchangingthe.rbfile?【发布时间】:2021-02-2504:59:04【问题描述】:我在Vagrant中有一个场景,我想使用ansible_local插件修... 查看详情
使用vagrant在命令行快速创建虚拟机
一、Vgrant的安装Vagrant是一个跨平台的虚拟机管理工具,我们以Deepin20.2.3为例,安装和使用Vagrant。我们在这里所说的Vagrant包括Vagrant工具本身和虚拟引擎工具VirtualBox。1.安装Vagrant安装vagrant时,使用的VirtualBox版本必须要得到对应Va... 查看详情
vagrant使用国内镜像安装插件和box镜像(代码片段)
dui前言Vagrant是非常优秀的本地虚拟化管理工具。无奈国内访问速度实在感人。本文分享一些如何使用国内镜像加速的经验,让Vagrant的使用更加爽快。插件镜像Vagrant的插件主要托管在RubyGems仓库,在国内几乎无法访问。万... 查看详情
vagrant里面不能运行docker,怎么回事
以下内容均出自Vagrant作者(MitchellHashimoto)与Docker作者(SolomonHykes)在stackoverflow上面一个问题讨论。在这个问题中,双方阐述了vagrant和docker的特点和使用范围,对于深入理解vagrant和docker很有意义,因此笔者翻译出来,以供大家讨... 查看详情
如何在 vagrant 中使用 ssh-key 和密码?
】如何在vagrant中使用ssh-key和密码?【英文标题】:howtousessh-keyinvagrantwithpassphrase?【发布时间】:2015-11-0522:55:01【问题描述】:我已经为libvirt创建了我的自定义框,并为vagrant生成了ssh-key对,而无需pass-phrase。我在vagrant文件中提... 查看详情
用vagrant创建jenkinsmaster-slave多机环境
在上一篇文章中,我们讲到了如何创建自己的vagrantbox。本文中,我们将使用Vagrant一次性创建3台虚拟机以组成一个Jenkins的master-slave构建环境,其中包含1台Jenkinsmaster机器,2台slave机器。我们将采用Shell作为provision工具,... 查看详情
使用 Vagrant 和 Puppet/PuPHPet 管理多个 LAMP 环境
】使用Vagrant和Puppet/PuPHPet管理多个LAMP环境【英文标题】:ManagingmultipleLAMPenvironmentswithVagrantandPuppet/PuPHPet【发布时间】:2015-10-3005:13:07【问题描述】:我正在尝试创建具有不同LAMP堆栈版本的多个(半同步)环境,以模拟开发、QA/... 查看详情
确定安装了哪些netframework版本
以下内容均出自Vagrant作者(MitchellHashimoto)与Docker作者(SolomonHykes)在stackoverflow上面一个问题讨论。在这个问题中,双方阐述了vagrant和docker的特点和使用范围,对于深入理解vagrant和docker很有意义,因此笔者翻译出来,以供大家讨... 查看详情
Vagrant 和 Docker nfs 失败:文件描述符错误
】Vagrant和Dockernfs失败:文件描述符错误【英文标题】:VagrantandDockernfsfailed:Badfiledescriptor【发布时间】:2016-05-1118:00:13【问题描述】:经过大量审查,尝试在Vagrant中使用rsync并以Docker作为提供者。(双向同步)我继续使用nfs在VMbo... 查看详情
vagrant简单使用
使用vagrant,需要安装virtualbox和vagrant。具体怎么安装这里就不介绍。 创建一个虚拟机找到一个初始boxvagrant创建虚拟机需要一个box镜像,box镜像可以在https://app.vagrantup.com/boxes/search中查询。例如我们找到了一个ubuntu16.04的镜像... 查看详情
ansible安装和基本使用
ansible是python开发的一款自动化运维工具,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量配置系统、批量部署程序、批量运行命令等功能。ansible是基于模块工作的,本身没有批量操作系统的能力。真... 查看详情
如何让共享文件夹与 Vagrant 和 Hyper-V 一起使用?
】如何让共享文件夹与Vagrant和Hyper-V一起使用?【英文标题】:HowtogetsharedfoldersworkingwithVagrantandHyper-V?【发布时间】:2019-06-1308:04:07【问题描述】:之后:启用MicrosoftHyper-V,如下所述:https://docs.microsoft.com/en-us/virtualization/hyper-v-on... 查看详情