« CentOS7にTomcat8.5を設定する | トップページ | Elasticsearch6一式をansibleで導入するためのPlaybook »

2018年2月12日 (月)

cygwinをansibleのコントローラにする

こんにちは、とたろう です。

 

ansibleをサーバの初期設定(M/Wの導入など)に使う場合、対象のサーバが1台~数台なのに、そのためのコントローラ・サーバを別途用意するとなるとハードルが上がりますよね。
手元のWindows PCにcygwinを入れて、それをansibleのコントローラにして手軽にansibleしてみようというアイディアです。

いい感じにできているので、参考にしていただければと。



 

http://cygwin.com/ からsetup-x86_64.exe をDLして起動。wgetだけsearchして選択、インストール。

cygwinコンソールから以下を実行。

cd /usr/local/bin
wget https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg
chmod 755 apt-cyg
cd
apt-cyg -m ftp://ftp.iij.ad.jp/pub/cygwin/ update

apt-cyg install python-setuptools
apt-cyg install make gcc-core python-devel libffi-devel openssl-devel python-crypto openssh
easy_install-2.7 pip
pip install --upgrade pip setuptools
pip install ansible
ansible --version
ここまでで、cygwinにansibleがインストールできた。

cygwinユーザでansible作業用dirを作成する。
そこで vi ansible.cfg でファイルを新規作成、以下の2行を記入。※ここがミソ。安定して動作するようになった。

[ssh_connection]
ssh_args = -o ControlMaster=no

そこから接続したいサーバ、ユーザが決まったら以下を実行。

> ssh-keygen -t rsa

> ssh-copy-id ユーザ@サーバ
例) ssh-copy-id root@192.168.0.123

vi hosts で対象のサーバを以下のような感じで登録。

[XXserver]
192.168.0.123 ansible_ssh_user=root

ワンライナーで疎通確認
ansible 192.168.0.123 -i hosts -m ping

pongが返ってくれば成功。

 

 

ansibleのディレクトリ構成はBest Practiceもあるようですが、こんな感じでもいいかと。

ansible 作業時のホームDir
├─ ansible.cfg
├─ inventory/
│   └─ hosts 接続対象サーバを記載
├─ tasks/
│   └─ *.yml Playbookファイル群
└─ files/
     └─ *.* サーバに配布するファイル群

実行時コマンド例)
> ansible-playbook -i inventory/hosts tasks/XXXX.yml --ask-become-pass --check
sudo時のパスワードをその場で入力する

« CentOS7にTomcat8.5を設定する | トップページ | Elasticsearch6一式をansibleで導入するためのPlaybook »

パソコン・インターネット」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: cygwinをansibleのコントローラにする:

« CentOS7にTomcat8.5を設定する | トップページ | Elasticsearch6一式をansibleで導入するためのPlaybook »

無料ブログはココログ