Ansibleに入門する
今回の目標
- Dockerを導入したLinux環境上で、Ansibleを導入したDockerイメージをビルドします
- コンテナの中でplaybookを実行して、ホストOSのファイル一覧を取得します
Dockerイメージの作成
Dockerfileを作ります。vimなど便利そうなツールは入れておきます。
FROM centos:8
RUN yum -y install epel-release && \
yum -y update && \
yum -y reinstall glibc-common && \
yum -y install which vim net-tools glibc-langpack-en langpacks-ja python36 openssh-clients passwd sshpass && \
rm -f /etc/localtime && \
ln -fs /usr/share/zoneinfo/Asia/Tokyo /etc/localtime && \
pip3 install ansible
RUN mkdir /etc/ansible && \
chmod 777 /etc/ansible && \
touch /etc/ansible/hosts && \
chmod 666 /etc/ansible/hosts
ENV LANG="ja_JP.utf8"
ビルド&実行します。
docker build -t ansible .
docker run -it --rm ansible bash
Ansibleを実行する準備
インベントリファイルを用意します(デフォルトで/etc/ansible/hosts)。
コンテナ内からホストOSを操作するようにします。
172.17.0.1
[all:vars]
ansible_ssh_user=myuser
ansible_ssh_pass=mypassword
playbookを用意します。ホストOS上のディレクトリのファイルを検索して出力します。
- hosts: all
tasks:
- name: find
find:
paths: /home/myuser/mydirectory
recurse: true
register: result
- name: debug
debug: var=result
実行
# 一度、sshログインしてknown_hostsに入れておく
ssh [email protected]
# playbookを実行する
ansible-playbook myplaybook.yaml
# 一度、sshログインしてknown_hostsに入れておく
ssh [email protected]
# playbookを実行する
ansible-playbook myplaybook.yaml
JSON形式で出力されました。
PLAY [all] ***********************************************************************************************************************************************************************************
TASK [Gathering Facts] ***********************************************************************************************************************************************************************
ok: [172.17.0.1]
TASK [find directory] ************************************************************************************************************************************************************************
ok: [172.17.0.1]
TASK [debug] *********************************************************************************************************************************************************************************
ok: [172.17.0.1] => {
"result": {
"changed": false,
"examined": 26,
"failed": false,
"files": [
{
"atime": 1573551290.6783524,
"ctime": 1573551252.5081663,
"dev": 64768,
"gid": 1000,
以下省略
Author And Source
この問題について(Ansibleに入門する), 我々は、より多くの情報をここで見つけました https://qiita.com/hiromitsu7/items/c954b0134f80f1ef756f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .