在Windows7 32位系统下并且在代理环境下,建立Vagrant + Ansible的环境
首先
-
- 社内勉強用の投稿です。
-
- 今どきwindows7 32bitでプロキシ環境下で作業している方へ送るansibleの環境構築手順です。
- Vagrantのインストール、Ansibleのインストールと動作確認を行う手順です。
希望创建一个环境
- Windows7 32bit Proxy環境下
安装VirtualBox
从这里下载并安装Oracle VirtualBox。
因为我们公司使用的机器(Windows7 32位)无法正确运行Vagrant,所以我们将安装4.1.12版本。
https://www.virtualbox.org/wiki/Download_Old_Builds_4_1_pre14
Vagrant的安装
请从以下链接下载并安装:
https://www.vagrantup.com/downloads.html
代理服务器的设置
- Vagrantをプロキシ環境下で利用する場合には設定が必要です。PROXY_URLとPROXY_PORTは適宜変更してください。
set http_proxy=PROXY_URL:PROXY_PORT
set https_proxy=PROXY_URL:PROXY_PORT
虚拟机的代理设置
安装Vagrantproxyconf插件。
这个插件可以在Vagrant管理的操作系统启动时自动设置代理。比如,在使用yum时就不需要手动设置代理。
vagrant plugin install vagrant-proxyconf
让我们确认插件已成功安装。
# vagrant plugin list
vagrant-proxyconf (1.5.0)
使用Vagrant启动两个CentOS实例。
1. 创建一个名为C:\Vagrant的文件夹。
2. 创建一个名为Vagrantfile的文件,并写入以下内容。如在使用代理环境下,请适当更改PROXY_URL和PROXY_PORT。
Vagrant.configure(2) do |config|
config.vm.define "ansible-host" do |node|
node.vm.box = "chef/centos-6.5-i386"
node.vm.hostname = "ansible-host"
node.vm.network :private_network, ip: "192.168.1.10"
end
config.vm.define "ansible-target" do |node|
node.vm.box = "chef/centos-6.5-i386"
node.vm.hostname = "ansible-target"
node.vm.network :private_network, ip: "192.168.1.20"
end
if Vagrant.has_plugin?("vagrant-proxyconf")
config.proxy.http = "http://PROXY_URL:PROXY_PORT/"
config.proxy.https = "http://PROXY_URL:PROXY_PORT/"
config.proxy.no_proxy = "localhost,127.0.0.1,192.168."
end
end
3. 启动CentOS操作系统。
#vagrant up
过一段时间后,应该会启动两个主机:ansible-host(192.168.1.10)和ansible-target(192.168.1.20)。请确认它们是否处于以下状态。
#vagrant status
Current machine status:
ansible-host running (virtualbox)
ansible-target running (virtual box)
5. 确保可以通过SSH登录到ansible-host和ansible-target。
因为是Windows环境,所以我会使用Teraterm进行登录。
用户名: vagrant
密码: vagrant
安装Ansible。
虽然可以从EPEL中使用yum进行安装,也可以使用pip进行安装,但在这里我想尝试使用yum进行安装。
1. 使用Teraterm登录到Ansible主机。
2. 添加适用于RH6(32位)的yum epel仓库。
$ sudo yum localinstall http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
请您在其他操作系统的情况下指定以下内容。
RedHat 6系 (32bit)
http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
RedHat 6系 (64bit)
http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
RedHat 7系 (64bit)
http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
3. 安装Ansible。
$ sudo yum install ansible
确认安装成功。
$ ansible --version
使用Ansible验证可通过Ansible目标执行命令。
将ansible-host的私钥传递给目标设备,以实现在SSH登录时无需输入密码。
首先,我们要创建一个密钥。只需连续按Enter键就可以了,不需要输入任何内容。
$ ssh-keygen -t rsa
2. 将秘钥复制到Ansible目标。
$ ssh-copy-id vagrant@192.168.1.20
3. 确保能够无需密码登录到ansible-target。
$ ssh vagrant@192.168.1.20
确认可以登录后,退出并返回到ansible-host。
在当前目录下创建名为 “hosts” 的文件。
“hosts” 文件被称为清单文件,用来记录 Ansible 目标服务器的列表。
192.168.1.20
如果从Ansible主机到Ansible目标机器打ping命令并且能够收到结果,则表示操作已成功验证。
$ ansible -i hosts 192.168.1.20 -m ping
192.168.1.20 | success >> {
"changed": false,
"ping": "pong"
}