zoukankan      html  css  js  c++  java
  • 使用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
  • 相关阅读:
    Java:面向对象的编程语言
    Java基本数据类型
    NotePad++安装及配置
    MarkDown的黄金搭档Typora编辑器
    rabbitmq常用命令【转载】
    rabbitmqweb管理端口http://localhost:15672/ 无法访问可能出现的问题
    又一个关于TP5的坑 模板页注释了的 {aaa} 依然是会被访问的
    关于layui的分页
    使用TP5容易遇到的坑
    TP5访问不了控制器
  • 原文地址:https://www.cnblogs.com/kevinX/p/8340750.html
Copyright © 2011-2022 走看看