入门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)。
確保在容器內可以操作主機作業系統。
172.17.0.1
[all:vars]
ansible_ssh_user=myuser
ansible_ssh_pass=mypassword
我会准备一个操作手册。它会在主机操作系统上搜索指定目录下的文件,并将结果输出。
- hosts: all
tasks:
- name: find
find:
paths: /home/myuser/mydirectory
recurse: true
register: result
- name: debug
debug: var=result
执行
# 一度、sshログインしてknown_hostsに入れておく
ssh myuser@172.17.0.1
# 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,
以下省略