初めてのAnsible
これまでインフラ関係の構築等をやってきていますがLinux関係はほとんど関りがなく
Linux関係の構築とか運用でAnsibleってワードが出てくる度に敬遠してました。
サービス開始時期を逃したMMORPGみたいな感じでなかなか手を出せなくなっていて
↓ みたいなイメージ
- なんかコードで設定するやつだよねぇ・・・
- ちょっと乗り遅れた感じあるなぁ・・・
- 一からコードとか文法を覚えるのもう無理じゃね・・・
Ansibleってワードが出てくる度に未経験です。っていうのもなかなか辛いので
一念発起して勉強をやっていこうと思っています。
Ansibleとは
簡単にいうとコンピューターの初期設定を設定ファイルに従って自動でやってくれるもの
パソコンキッティングで良くやるホスト名とかソフトインストールとか
勝手な思い込みでLinuxオンリーかと思ってたけどwindowsもいけるみたいですね。
お試し環境作ってみる
- 自分のパソコンにVirtualBox入れてCentOSサーバを2台作成
- VirtualBoxのネットワーク設定はVM間で通信させたいのでブリッジアダプター
- VMをそれぞれ設定する側(サーバ、コントローラ)と設定される側(クライアント)とする
参考にさせて頂いた記事
名前とIPは以下の通り
お互い通信できてインターネットにもいけます。SSHも可能。
Ansibleサーバ構築
AnsibleサーバにSSHで接続して以下を実行
# yum install epel-release
# yum install ansible
正常にインストールできました。最初は結構前にダウンロードしてたCentOS8で試したらパッケージの依存関係云々出てきたのでCentOS stream9で実施しました。
インストールは最小構成で実施。
お試し環境にはDNSが無いのでhostsファイルに以下追加します。
# vi /etc/hosts
192.168.0.14 srv
192.168.0.16 cli
同じ内容をansibleクライアント側にも追加します。
Ansibleインベントリ作成
Ansibleサーバ上で構築対象ホストの設定ファイル(インベントリ)を作成します。
設定ファイルのパスはこれ(/etc/ansible/hosts)。
インストール直後は書き方の例が記載されているだけなので
とりあえず一番下に追加していきます。
書き方はこんな感じです。
[グループ名]
グループに所属するホスト名1またはIP
グループに所属するホスト名2またはIP
こんな感じに設定してみました。1台しかないのでグループ化のメリットないですけど・・
インベントリ設定確認
一応この状態で設定が問題ないかを確認するためにpingコマンドが通るか確認してみます。
# ansible (グループまたはホスト) -k -m ping
一旦は-k オプション入れてパスワードを都度指定。
SUCCESSと出ているので問題なさそうです。
ちなみに今回はAnsibleインベントリにホスト名で登録しているので
IPを指定するとエラーになります。インベントリにIPで登録すれば問題ない。
参考にさせて頂いた記事
一応鍵認証も試してみます。
ssh鍵を作成します。
# ssh-keygen
途中はすべて空白のままエンターを押します。
ssh公開鍵をansibleクライアントにコピーします。
ssh-copy-id cli
コピーできたようなので-kオプション無しでできるか試してみます。
パスワードを聞かれずにできました。
これでAnsibleを使用できる状態になりました。
次は実際にクライアント上で何を設定するかをまとめたプレイブックなるものを作成して
動作を試してみます。