【Ansible】CentOS7.3にAnsible実行環境を構築

# はじめに
Ansible学習の一環でCentOS7.3にAnsible実行環境を構築しました。
今回は、Ansible実行環境構築手順をアウトプットします。

# 環境

|  項目  |  説明  |
| ---- | ---- |
|  Hypervisor　|  ESXi6.7  |
|  OS  |  CentOS7.3  |

※CentOS7.3は「最小限のインストール」になります。

```bash
(venv) [root@tspdev01 ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
(venv) [root@tspdev01 ~]#
```

# 構築前OS設定

こちらのリンクの設定が完了した状態
[【Linux】CentOS7.3のOSインストール後の基本設定](https://qiita.com/satton6987/items/1fccbe1db7ee04dfbaae)


# 今回構築する構成

![1.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/636476/12b8cff4-bab5-2cad-47a1-c464ddd218c4.jpeg)



# ansible実行環境構築手順

## ①python開発環境用意

### 構築箇所

![2.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/636476/23454f25-1a7b-030e-2fd3-e0d991bea64c.jpeg)


### 手順

**①epelインストール**

```bash
[root@tspdev01 ~]# yum install -y epel-release
```

【実行例】

```bash
[root@tspdev01 ~]# yum install -y epel-release
読み込んだプラグイン:fastestmirror
base                                                     | 3.6 kB     00:00
extras                                                   | 2.9 kB     00:00
updates                                                  | 2.9 kB     00:00
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
依存性の解決をしています

～～～省略～～～

Downloading packages:
epel-release-7-11.noarch.rpm                               |  15 kB   00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : epel-release-7-11.noarch                        1/1
  検証中                  : epel-release-7-11.noarch                        1/1

インストール:
  epel-release.noarch 0:7-11

完了しました!
[root@tspdev01 ~]#
```

**②開発ツールインストール**

```bash
[root@tspdev01 ~]# yum groupinstall -y "Development Tools"
```

【実行例】

```bash
～～～省略～～～
  perl-Test-Harness.noarch 0:3.28-3.el7
  perl-Thread-Queue.noarch 0:3.02-2.el7
  perl-XML-Parser.x86_64 0:2.41-10.el7
  perl-srpm-macros.noarch 0:1-8.el7
  python-srpm-macros.noarch 0:3-32.el7
  rsync.x86_64 0:3.1.2-10.el7
  subversion-libs.x86_64 0:1.7.14-14.el7
  systemtap-client.x86_64 0:4.0-11.el7
  systemtap-devel.x86_64 0:4.0-11.el7
  systemtap-runtime.x86_64 0:4.0-11.el7
  unzip.x86_64 0:6.0-21.el7
  zip.x86_64 0:3.0-11.el7

依存性を更新しました:
  dbus.x86_64 1:1.10.24-13.el7_6          dbus-libs.x86_64 1:1.10.24-13.el7_6
  elfutils-libelf.x86_64 0:0.176-4.el7    elfutils-libs.x86_64 0:0.176-4.el7
  gettext.x86_64 0:0.19.8.1-3.el7         gettext-libs.x86_64 0:0.19.8.1-3.el7
  glibc.x86_64 0:2.17-307.el7.1           glibc-common.x86_64 0:2.17-307.el7.1
  libgcc.x86_64 0:4.8.5-39.el7            libgomp.x86_64 0:4.8.5-39.el7
  libstdc++.x86_64 0:4.8.5-39.el7         rpm.x86_64 0:4.11.3-43.el7
  rpm-build-libs.x86_64 0:4.11.3-43.el7   rpm-libs.x86_64 0:4.11.3-43.el7
  rpm-python.x86_64 0:4.11.3-43.el7

完了しました!
[root@tspdev01 ~]#
```


**③「python-devel」「sshpass」インストール**

```bash
[root@tspdev01 ~]# yum install python-devel sshpass -y
```

【実行例】

```bash
  検証中                  : 1:openssl-libs-1.0.2k-19.el7.x86_64            8/12
  検証中                  : 1:openssl-libs-1.0.1e-60.el7.x86_64            9/12
  検証中                  : python-libs-2.7.5-48.el7.x86_64               10/12
  検証中                  : python-2.7.5-48.el7.x86_64                    11/12
  検証中                  : 1:openssl-1.0.1e-60.el7.x86_64                12/12

インストール:
  python-devel.x86_64 0:2.7.5-88.el7         sshpass.x86_64 0:1.06-2.el7

依存性関連をインストールしました:
  python-rpm-macros.noarch 0:3-32.el7    python2-rpm-macros.noarch 0:3-32.el7

依存性を更新しました:
  openssl.x86_64 1:1.0.2k-19.el7       openssl-libs.x86_64 1:1.0.2k-19.el7
  python.x86_64 0:2.7.5-88.el7         python-libs.x86_64 0:2.7.5-88.el7

完了しました!
[root@tspdev01 ~]#
```


## ②virtualenv用意

### 構築箇所

![3.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/636476/2688a72b-8088-60c6-b881-031d7580f3d7.jpeg)


### 手順

**①pipインストール**

- pipインストール

```bash
[root@tspdev01 ~]# curl -kL https://bootstrap.pypa.io/get-pip.py | python
```

- pipインストール確認

```bash
[root@tspdev01 ~]# pip -V
pip 20.1.1 from /usr/lib/python2.7/site-packages/pip (python 2.7)
[root@tspdev01 ~]#
```

**②virtualenvインストール**

```bash
[root@tspdev01 ~]# pip install virtualenv
```

【実行例】

```bash
[root@tspdev01 ~]# pip install virtualenv
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Collecting virtualenv
  Downloading virtualenv-20.0.23-py2.py3-none-any.whl (4.7 MB)
     |????????????????????????????????| 4.7 MB 5.2 MB/s
Collecting distlib<1,>=0.3.0
  Downloading distlib-0.3.0.zip (571 kB)
     |????????????????????????????????| 571 kB 11.6 MB/s
Collecting filelock<4,>=3.0.0
  Downloading filelock-3.0.12.tar.gz (8.5 kB)

～～～省略～～～

  Created wheel for filelock: filename=filelock-3.0.12-py2-none-any.whl size=7578 sha256=c2a6ff3e7e4a79af7b1c2a6de470da5956c74e8a19242a19b9df90f671eaaabf
  Stored in directory: /root/.cache/pip/wheels/b9/91/23/b559c1f4fd55056712b3a71cd9cab1dc0089e2232d502ed72e
  Building wheel for scandir (setup.py) ... done
  Created wheel for scandir: filename=scandir-1.10.0-cp27-cp27mu-linux_x86_64.whl size=36079 sha256=455287ed23b6313ca43b050f9f360f1f39d2423c783e77bd2f295a7aad2ea8fa
  Stored in directory: /root/.cache/pip/wheels/58/2c/26/52406f7d1f19bcc47a6fbd1037a5f293492f5cf1d58c539edb
Successfully built distlib filelock scandir
Installing collected packages: distlib, filelock, six, scandir, pathlib2, contextlib2, appdirs, zipp, configparser, importlib-metadata, singledispatch, typing, importlib-resources, virtualenv
Successfully installed appdirs-1.4.4 configparser-4.0.2 contextlib2-0.6.0.post1 distlib-0.3.0 filelock-3.0.12 importlib-metadata-1.6.1 importlib-resources-2.0.1 pathlib2-2.3.5 scandir-1.10.0 singledispatch-3.4.0.3 six-1.15.0 typing-3.7.4.1 virtualenv-20.0.23 zipp-1.2.0
[root@tspdev01 ~]#

```

**③ホームディレクトリ移動**

```bash
[root@tspdev01 ~]# cd $HOME/
[root@tspdev01 ~]# pwd
/root
```

**④「venv」プロジェクト作成**

```bash
[root@tspdev01 ~]# virtualenv venv
created virtual environment CPython2.7.5.final.0-64 in 400ms
  creator CPython2Posix(dest=/root/venv, clear=False, global=False)
  seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=/root/.local/share/virtualenv/seed-app-data/v1.0.1)
  activators PythonActivator,CShellActivator,FishActivator,PowerShellActivator,BashActivator
[root@tspdev01 ~]#
```



## ③ansibleインストール作業

### 構築箇所

![4.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/636476/8574b486-517b-a4fc-cc64-12857fc006af.jpeg)


### 手順

**①「venv」プロジェクトへ移動**

```bash
[root@tspdev01 ~]# source $HOME/venv/bin/activate
(venv) [root@tspdev01 ~]#
```

**②「venv」プロジェクトへansibleインストール**

```bash
(venv) [root@tspdev01 ~]# pip install ansible
```

**③ansibleインストール確認**

```bash
(venv) [root@tspdev01 ~]# ansible --version

ansible 2.9.9
  config file = None
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /root/venv/lib/python2.7/site-packages/ansible
  executable location = /root/venv/bin/ansible
  python version = 2.7.5 (default, Apr  2 2020, 13:16:51) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
(venv) [root@tspdev01 ~]#

```

# 参考
[pipのインストール方法](https://qiita.com/suzuki_y/items/3261ffa9b67410803443)
[virtualenv 基本的なコマンド使い方メモ](https://qiita.com/th1209/items/84f21a4499548b34ec91)
[virtualenv のインストール](https://qiita.com/silverskyvicto/items/49de90d2ac4f8af4a418)
[Ansible実践ガイド 第3版](www.amazon.co.jp/dp/4295007641)