最近在做大数据和k8s的集群化测试,刚好自己电脑的配置还不错,干脆直接基于虚拟机本机折腾了。
为了管理方便,用到了vagrant和ansible这两个工具,主要是可以进行批量的处理,免去一台台手动配置的麻烦了。
相关的安装及详细使用这里就不介绍了,官网都有材料,本文主要记录一些关键配置及命令,方便日后复用。
Vagrantfile配置
Vagrant.configure("2") do |config|
(1..3).each do |i|
config.vm.define "n#{i}" do |node|
# 设置虚拟机的Box
node.vm.box = "centos/7"
# 设置虚拟机的主机名
node.vm.hostname="n#{i}"
# 设置虚拟机的IP
node.vm.network "private_network", ip: "192.168.59.2#{i}"
# 设置主机与虚拟机的共享目录
#node.vm.synced_folder "~/Desktop/share", "/home/vagrant/share"
# VirtaulBox相关配置
node.vm.provider "virtualbox" do |v|
# 设置虚拟机的名称
v.name = "n#{i}"
# 设置虚拟机的内存大小
v.memory = 2048
# 设置虚拟机的CPU个数
v.cpus = 2
end
end
end
end
配置完成后,在当前目录执行vagrant up
批量启动虚拟机,vagrant ssh n1
可以登录到第一台机器,然后给每台机器做下root用户的免密登录,方便接下来的ansible配置。
ansible的inventory.yaml配置
vm:
hosts:
n1:
ansible_host: 192.168.59.21
n2:
ansible_host: 192.168.59.22
n3:
ansible_host: 192.168.59.23
vars:
ansible_user: root
基于ansible的shell模块,批量执行命令
一个示例:
ansible vm -i inventory.yaml -m shell -a 'date'
如果使用yum批量安装软件的话,注意加上-y参数,避免交互式命令卡住ansible执行。
Related Issues not found
Please contact @stanzhai to initialize the comment