Ansible 每月集会 2019年4月 在甲府 参与报告

由Ansible用户俱乐部主办的Ansible学习会在我们公司内举行,我趁着这个难得的机会参加了进去。
https://ansible-users.connpass.com/event/124686/

“木木会” 指的是一群人聚在一起,按照各自的节奏努力工作或学习的会议。

株式会社アイティードゥは甲府駅から徒歩約15分の場所に位置しています。この会社は主にインフラ関連の業務を引き受けています。彼らは月に一度程度、公開の勉強会の会場を提供しています。

Ansible 是什么?

・可以自动化构建和运营服务器和网络设备的工具。
・在称为playbook的YAML文件中编写您希望执行的任务,并自动执行这些任务。
具体而言,包括安装软件包、替换文件、执行命令等等。
・唯一需要的前提是Python环境和能够进行SSH连接,因此非常适合虚拟机和云环境。

默默的会议

在AWS上的学习环境中,我们每个人都进行了实操。请点击链接查看更多详情:https://github.com/network-automation/linklight/blob/master/exercises/ansible_engine/README.ja.md。

可以与RedHat公司负责开发Ansible的员工(包括RedHat株式会社2的人员)以及导师们建立直接沟通的体制,这也是参加Ansible的合作学习会的一个理由。

我在参加这个 Ansible 研讨会之前,并不是第一次接触 Ansible,我已经通过书籍和网上教程对基本用法有了一定的了解。但是,从这次 Ansible 研讨会开始,我觉得这里是一个非常好的学习环境,我希望能早点遇到这个 Ansible。

搭建Ansible执行环境需要准备多台计算机和网络设置,包括为NIC分配IP地址,设置用于公钥认证的密钥文件,确认权限等等,直到建立SSH连接为止,这是相当繁琐的过程。在搭建环境阶段就会遇到很多问题,有时候甚至会因为疲惫而放弃学习这个工具。因此,在一个做好前提准备的状态下,立即开始学习Ansible具有很大的优势,可以维持动力和动力的观点。

展示了安装和启动Apache服务到多台机器的演示例子非常清楚地帮助了我了解了Ansible的概述,并且逐渐扩展playbook的过程对我理解playbook的结构有很大帮助。

因此,我們能夠順利地通過基於角色的 playbook 分割以及每個目錄的角色來接受。Ansible 通過在 roles 目錄下創建指定名稱的目錄來分割 playbook。理解應如何進行分割的目錄結構,首先需要理解 playbook 的結構似乎是一個捷徑。

在本次实践中,扩展并分割的playbook目录结构最终变为这样。

#tree -F
.
 `-- roles/
    |-- apache-simple/
    |   |-- README.md
    |   |-- defaults/
    |   |   `-- main.yml
    |   |-- handlers/
    |   |   `-- main.yml
    |   |-- tasks/
    |   |   `-- main.yml
    |   |-- templates/
    |   |   |-- httpd.conf.j2
    |   |   `-- index.html.j2
    |   `-- vars/
    |       `-- main.yml
    |-- hosts
    |-- site.yml
     `-- site.yml.bk

通过执行site.yml,将执行分割的 playbook。
site.yml的内容如下所示。

---
- hosts: web
  name: This is my role-based playbook
  become: yes

  roles:
    - apache-simple

大致上来说,这个 playbook 的意思是“载入/roles/apache-simple下的内容,并以目标服务器web的root用户来执行。” 所有的子目录下的main.yml文件都会被自动载入。


各个目录下的角色所扮演的职责

    defaults

设定变量的默认值。如果没有其他设置,将使用该目录中的值。
Ansible变量根据设置的位置来确定优先级,该目录中定义的变量具有最低的优先级。

    handlers

用于执行控制的目录。
例如,可以设置条件分支,例如“只有在发生此任务引起的更改时才执行handlers目录下的特定任务”。

    tasks

用于描述想要在目标服务器上执行的操作的目录。包括安装软件包和设置文件等。

    templates

如果使用template模块放置文件,请在此目录中的文件中写入其内容。
使用Jinja2模板引擎,文件的扩展名将是.j2。

    vars

在卷内定义使用的变量的目录。


根据角色分解playbook,可以方便地重用他人编写的playbook或共享自己的playbook。由于存在可以共享playbook和目录结构的ansible-galaxy,可以预期通过结合使用能够实现强大的运维管理。

The Chinese translation for “終わりに” is “最后”.

在此,我要再次向主办Ansible用户会的大家、Red Hat公司的大家以及参加者们表达感谢,感谢你们为我们提供了一个良好的学习环境。也感谢大家在学习会后的Ansible聚餐2中共度了美好的时光。这样就结束我们的报告了。

我非常享受金精轩的寒天信玄饼和竹薮之乡的美味。我们下次再在Ansible饭3见面。

链接

Ansible 用户会
https://ansible-users.connpass.com/
ITdo 公司

株式会社アイティードゥのサイトへようこそ


RedHat 公司
https://www.redhat.com/ja/global/japan

使用Ansible相关工具共享技术信息、成果等的用户社区。

这是一家以云技术服务为核心的公司,同时也以Red Hat Enterprise Linux作为产品进行销售、开发和支持的Linux发行版。(摘自维基百科)

Ansible用户团体成员之间举行的聚餐活动。

bannerAds