Ansible入れてみたけどどないして使うねん

永井
2024-04-11
2024-04-11

はじめに

今回は、Ansibleを入れてみたけどどうやって使ったらいいのかわからない人向けの記事です。

そのため、Ansibleのインストールや必要に応じて各サーバへの鍵の設置は完了している状態とします。

サーバはコントロールノードとターゲットノードの2つを準備して行います。
ターゲットノードのIPは「192.168.210.238」としています。

ターゲットサーバにローカルのファイルをコピーする

■ディレクトリ構造
|- master.yml
|- config.yml
|- test.txt
└- roles
 └- setup_file
  └- tasks
   └- main.yml

各ファイルの説明
master.yml:
「どこでどのタスクを実行するか」を定義しています。

config.yml:
今回はターゲットノードのIPを記載してます。

test.txt:
コピー対象のファイルです。

main.yml:
ローカルのファイルをターゲットノードにコピーする処理を記載してます。
各タスクは「roles/タスク名/tasks」の中に追加していく感じです。

今回の各ファイルは以下のような内容になっています。
●master.yml
※諸事情により中括弧が全角になってますが、実際は半角で記載しています。

- hosts: target_sv
  remote_user: test_user
  vars:
    dir_date: "{{ lookup('pipe', 'date +%Y%m%d') }}"
  roles:
    - setup_file

●config.yml

[target_sv]
192.168.210.238

●main.yml
※諸事情により中括弧が全角になってますが、実際は半角で記載しています。

---
- name: copy file
  copy: src=test.txt dest=/home/test_user/target/{{ dir_date }}/ owner=test_user group=test_user mode=0644

今回の場合、「/home/test_user/target/[実行日の日付]/」配下にtest.txtがコピーされる想定です。
では実際にコントロールノードから実行してみましょう。

実行コマンド:

ansible-playbook -i config.yml master.yml

出力:

~~~~~~~~省略~~~~~~~~
TASK [setup_file : copy file] ************************************************************************************
changed: [192.168.210.238]

PLAY RECAP **********************************************************************************************************
192.168.210.238            : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

実際にターゲットノードにファイルが設定されているか確認してみます。

ls -l /home/test_user/target/20240410/test.txt
-rw-r--r-- 1 test_user test_user 17  4月 10 12:17 /home/test_user/target/20240410/test.txt

おわりに

今回はAnsibleを使ってテストファイルをターゲットノードにアップロードしてみました。
roles配下に別のタスクを作成し、mastar.ymlを編集することで一度に実行するタスクを増やすこともできますのでやってみてください。
ここまで読んでいただきありがとうございます。