[第二卷]安装Ansible至BoW

Windows 上的 Ubuntu 系统中的 Bash 上的 Ansible

在之前的文章中,我们已经完成了Bash on Ubuntu on Windows的启动过程。

[第一卷]在BoW上安装Ansible

这次我们将在这个环境中安装Ansible。然而,由于缺少许多东西,我们将按照以下步骤进行。请注意,我们将通过git clone获取Ansible,并使其可以执行,而不是使用apt-get进行安装。

    • 必要なシステム・パッケージのインストール

 

    • pipのインストール

 

    • 必要なPythonパッケージのインストール

 

    • gitのインストール

 

    • Ansible開発版の取得

 

    Ansible開発版の環境構築

这是通过尝试和错误得出的步骤。如果遇到相同的情况,我认为可能会成功,但如果不成功,我很抱歉。

安装必要的系统包裹。

在后续步骤中需要安装的各种软件包。要安装的软件包如下:

    • build-essential

 

    • libssl-dev

 

    • libffi-dev

 

    python-dev

进行安装。

user@PC:~$ sudo apt-get install build-essential libssl-dev libffi-dev python-dev

安装pip

接下来是安装pip。在安装Ansible开发版的环境时,需要Python软件包,并且需要安装pip来管理这些软件包。

下载get-pip.py

据说要安装pip,需要通过get-pip.py这个东西来安装。虽然我不太清楚,但是好像是这样的。

不管怎样,都要下载。

user@PC:~$ wget https://bootstrap.pypa.io/get-pip.py
:
user@PC:~$ ls
get-pip.py

安装get-pip.py

下载后需安装。当然了。

user@PC:~$ sudo -H python get-pip.py

安装所需的Python包

那么,我们将使用pip工具来安装Python的软件包。所需的软件包如下所示。

    • paramiko

 

    • jinja2

 

    • PyYAML

 

    setuptools

安装完成。

user@PC:~$ sudo -H pip install paramiko jinja2 PyYAML setuptools pycrypto

Git的安装

终于开始进行Ansible的安装工作。由于Ubuntu已经为Ansible提供了合适的包,所以也可以使用apt-get进行安装。然而,我们决定通过git获取开发版并构建它,以便可执行。没有什么特别的原因,是的。

首先要安装git。

user@PC:~$ sudo apt-get install git

获取 Ansible 开发版

我会从 GitHub 上 clone Ansible 下来。

user@PC:~$ git clone https://github.com/ansible/ansible.git

我已经获取了Ansbile的完整文件集到当前目录中。

使用Ansible开发版进行环境构建。

那么,由于不是软件包,所以不能安装和运行完成。请执行以下命令,使从获得的Ansible开发版本环境中可以运行Ansible。

user@PC:~$ cd ansible
user@PC:~/ansible$ source hacking/env-setup
running egg_info
creating lib/ansible.egg-info
writing requirements to lib/ansible.egg-info/requires.txt
writing lib/ansible.egg-info/PKG-INFO
writing top-level names to lib/ansible.egg-info/top_level.txt
writing dependency_links to lib/ansible.egg-info/dependency_links.txt
writing manifest file 'lib/ansible.egg-info/SOURCES.txt'
reading manifest file 'lib/ansible.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
no previously-included directories found matching 'v2'
no previously-included directories found matching 'docsite'
no previously-included directories found matching 'ticket_stubs'
no previously-included directories found matching 'packaging'
no previously-included directories found matching 'test'
no previously-included directories found matching 'hacking'
warning: no previously-included files found matching 'lib/ansible/modules/core/.git*'
warning: no previously-included files found matching 'lib/ansible/modules/extras/.git*'
no previously-included directories found matching 'lib/ansible/modules/core/.git'
no previously-included directories found matching 'lib/ansible/modules/extras/.git'
writing manifest file 'lib/ansible.egg-info/SOURCES.txt'

Setting up Ansible to run out of checkout...

PATH=/home/user/ansible/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
PYTHONPATH=/home/user/ansible/lib:
MANPATH=/home/user/ansible/docs/man:

Remember, you may wish to specify your host file with -i

Done!

user@PC:~/ansible$

ansible/env-setup听起来像是一个用于环境设置的脚本。从执行时的消息末尾可以看出,它会进行各种路径设置。

现在让我们来执行Ansible。

user@PC:~/ansible$ cd ..
user@PC:~$ ansible --version
ansible 2.2.0 (devel acd69bcc77) last updated 2016/08/31 23:35:14 (GMT +900)
  lib/ansible/modules/core:  not found - use git submodule update --init lib/ansible/modules/core
  lib/ansible/modules/extras:  not found - use git submodule update --init lib/ansible/modules/extras
  config file =
  configured module search path = Default w/o overrides
user@PC:~$

嗯?好像说”找不到”。还说要”使用 git submodule update…”。

看起来最好更新一下子模块。按照显示出来的消息做。

user@PC:~$ cd ansible
user@PC:~/ansible$ git submodule update --init lib/ansible/modules/core
Submodule 'lib/ansible/modules/core' (https://github.com/ansible/ansible-modules-core) registered for path 'lib/ansible/modules/core'
Cloning into 'lib/ansible/modules/core'...
remote: Counting objects: 38439, done.
remote: Compressing objects: 100% (18/18), done.
remote: Total 38439 (delta 7), reused 0 (delta 0), pack-reused 38421
Receiving objects: 100% (38439/38439), 9.19 MiB | 103.00 KiB/s, done.
Resolving deltas: 100% (25442/25442), done.
Checking connectivity... done.
Submodule path 'lib/ansible/modules/core': checked out '5310bab12f6013195ac0e770472d593552271b11'
masayuki@MASAYUKI-PC:~/ansible$

再来一次。

user@PC:~/ansible$ git submodule update --init lib/ansible/modules/
extras
Submodule 'lib/ansible/modules/extras' (https://github.com/ansible/ansible-modules-extras) registered for path 'lib/ansible/modules/extras'
Cloning into 'lib/ansible/modules/extras'...
remote: Counting objects: 35772, done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 35772 (delta 27), reused 0 (delta 0), pack-reused 35719
Receiving objects: 100% (35772/35772), 8.06 MiB | 258.00 KiB/s, done.
Resolving deltas: 100% (23825/23825), done.
Checking connectivity... done.
Submodule path 'lib/ansible/modules/extras': checked out '2ef4a34eee091449d2a22312e3e15171f8c6d54c'

那么,让我们再次尝试执行Ansible。

user@PC:~$ ansible --version
ansible 2.2.0 (devel acd69bcc77) last updated 2016/08/31 23:35:14 (GMT +900)
  lib/ansible/modules/core: (detached HEAD 5310bab12f) last updated 2016/08/31 23:41:21 (GMT +900)
  lib/ansible/modules/extras: (detached HEAD 2ef4a34eee) last updated 2016/08/31 23:43:41 (GMT +900)
  config file =
  configured module search path = Default w/o overrides
masayuki@MASAYUKI-PC:~$

看起来它似乎没有任何问题,能正常运行。

最后

我在两篇文章中介绍了在Windows上使用Bash on Ubuntu on Windows(也看到过使用BoW / UoW的记述)安装Ansible的步骤。无法完全想象在Windows上能运行bash对未来软件开发会有多大的影响。目前,Mac在开发者中很受欢迎的原因之一是它基于Linux的操作系统具有终端,可能也会有越来越多的人说:“Windows也可以做到这点”,并再次将Windows作为开发机器。

似乎仍然存在一些潜在问题,但我打算以Ansible/Vagrant等工具为核心,继续进行调试和修改。

广告
将在 10 秒后关闭
bannerAds