Vagrant ansible和ansible playbook对内核事实的回复值不同
我正在运行一个流浪虚拟机来测试ansible剧本 其中一个剧本包括一些基于内核版本的测试。 流浪者虚拟机是一个Ubuntu 12.04。这是流浪汉的档案Vagrant ansible和ansible playbook对内核事实的回复值不同,vagrant,ansible,ansible-playbook,Vagrant,Ansible,Ansible Playbook,我正在运行一个流浪虚拟机来测试ansible剧本 其中一个剧本包括一些基于内核版本的测试。 流浪者虚拟机是一个Ubuntu 12.04。这是流浪汉的档案 # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure(2) do |config| config.vm.box = "ubuntu/precise64" config.vm.provider "virtualbox" do |v| v.customize ["m
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/precise64"
config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--cpuexecutioncap", "90", "--memory", "2048"]
end
config.vm.provision :shell, path: "vagrant/bootstrap.sh"
config.vm.network :private_network, ip: "192.168.2.2"
config.vm.provision :ansible do |ansible|
ansible.playbook = "vagrant/setup.yml"
end
end
现在在虚拟机中,我更新了内核以反映我的生产环境,从3.8到3.11,登录到虚拟机时使用:
sudo apt-get install --install-recommends linux-generic-lts-saucy xserver-xorg-lts-saucy libgl1-mesa-glx-lts-saucy
现在,当我使用ansible命令收集流浪VM的事实时,我得到:
“ansible_内核”:“3.11.0-26-generic”
但是,使用little playbook(因此使用ansible playbook命令)
我得到:
我很困惑,为什么我在这里看不到内核版本的相同值呢?根据执行任务的用户不同,事实有所不同: 我猜你用过
ansible -m setup machine_name
获取ansible内核。
还可以尝试:
ansible -s -m setup machine_name
您将看到不同之处看起来您将ansible剧本作为供应脚本运行。由于内核更新后没有重新启动,事实告诉您当前使用的内核,而不是更新的内核。我认为,您在vm重新启动后运行了ansible命令。在这种情况下,虚拟机使用新内核,事实告诉您新版本。不,对不起,我没有编写它,但我在更新后重新启动了机器。我可以同时运行playbook和命令,在多次重新启动后仍然可以获得差异,但实际上,这可能与事实缓存有关。我会调查一下的,找到了@SebastianStigler这几乎就是你说的事实上,我在重新启动之前缓存了错误的值,但从未更新缓存的值。清除缓存成功了!谢谢
ansible -m setup machine_name
ansible -s -m setup machine_name