在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"
}
广告
将在 10 秒后关闭
bannerAds