您可以将Ansible与Vagrant结合使用,以自动配置Vagrant计算机要求和设置软件依赖性。本文不会对Vagrant和Ansible进行太多详细介绍,而只是概述如何将Ansible与Vagrant结合使用:将Vagrant up运行Ansible Playbook。参考安装Ansible(在Fedora/RHEL 8/CentOS 8/Debian/Ubuntu/Arch/openSUSE中)、在Debian 10系统上安装vagrant_2.2.6_x86_64.deb的方法。
我将创建一个项目目录: $ mkdir ~/myvagrant $ cd ~/myvagrant
我将创建一个简单的Ansible Playbook,以更新操作系统并安装基本软件包,您可以扩展以涵盖您需要设置的内容: $ vim provision.yaml --- - hosts: all become: yes become_method: sudo tasks: - name: Update OS package: name: '*' state: latest - name: Install Basic packages package: name: ['vim', 'zip', 'bash-completion', 'wget', 'tmux']
然后创建一个带有ansible Provisioner定义的Vagrantfile: $ vim Vagrantfile # -*- mode: ruby -*- # vi: set ft=ruby : ENV['VAGRANT_DEFAULT_PROVIDER'] = 'libvirt' Vagrant.configure("2") do |config| ##### VM definition ##### config.vm.define "cent01" do |config| config.vm.hostname = "cent01" config.vm.box = "centos/8" config.vm.box_check_update = false config.vm.provision :ansible do |ansible| ansible.limit = "all" ansible.playbook = "provision.yaml" end config.vm.provider :libvirt do |v| v.memory = 1024 v.cpus = 1 end end end
从我们的Vagrant文件中可以看出,我们正在使用Provision.yaml Playbook。
准备好Playbook和Vagrantfile后,请运行vagrant up命令以启动虚拟机: $ vagrant up
如果您的Vagrant机器已启动,请使用以下命令: vagrant provision
我们的执行成功,您现在可以使用以下命令将SSH切换到VM: $ vagrant ssh
相关主题 |