Ansible系列教程-环境部署(一)

36次阅读
没有评论

一、概述

Python 阵营的组态管理工具!个人对 Python 熟悉度大于 Ruby。3
不用帮每台机器 (instance) 预载 agent 4,只要有 SSH 和 Python 就可以闯天下!

系统环境: CentOS 7.8 MINI

ip信息

ansible-node1:172.16.100.9
ansible-node2:172.16.100.10
ansible-control:172.16.100.11

在目前 4 大主流的组态管理工具 (Puppet, SaltStack, Chef, Ansible) 中, Ansible 是最容易上手,且马上就可以用的工具。

Ansible 是怎么运作的?

在 Ansible 的世界里,我们会通过 inventory 档案来定义有哪些 Managed node (被控端),并借由 SSH 和 Python 进行沟通。

Ansible系列教程-环境部署(一)

换句话说,当 Control Machine (主控端) 可以用 SSH 连上 Managed node,且被连上的机器里有预载 Python 时,Ansible 就可以运作了!

Control Machine 指的是我们主要会在上面操作 Ansible 的机器,冻仁喜欢用主控端来形容它。它可以是我们平时用的电脑、手机 1 或机房里的某一台机器,也可以把它想成是一般 Lab 练习里的 Workstation。

Managed node 则是被 Ansible 操纵的机器,冻仁喜欢用被控端来形容它。在很多的 Lab 练习里会用 Server 来称呼它。

在一般的情况下,我们只需在 Control Machine 里安装 Ansible 即可,因为 GNU/Linux 和 macOS 的 Managed node 都早已预载了 Python 2.5 以上的版本,且开通了 SSH 连线的条件。

二、开始安装管理主机

  1. 新增 epel-release 第三方套件来源。
    # yum install -y epel-release
  2. 安装 Ansible。
    # yum install -y ansible

    file

三、配置Ansible管理主机

安装好 Ansible 后,我们可以在 /etc/ansible/ 的目录底下找到 Ansible 的配置文件

通常我们较偏爱把 ansible.cfg 和 hosts 这两个档案与其它的 Playbooks 放在同个专案目录底下,然后通过版本控制系统 (例如 Git) 把它们一起储存起来,以实现 Ansible 的 Infrastructure as Code!

3.1 配置SSH秘钥认证

#ssh-keygen -t rsa
#ssh-copy-id root@172.16.100.9
#ssh-copy-id root@172.16.100.10

3.2 添加被管理主机

打开/etc/ansible/hosts文件,在底部添加如下:

[Client]
172.16.100.9
172.16.100.10

3.4 测试

运行#ansible Client -m ping 命令,测试组内所有主机。

Ansible系列教程-环境部署(一)

3.5 inventory 是什么?

inventory 就单字本身有详细目录、清单和列表的意思。在这里我们可以把它当成是一份主机列表,我们可通过它对定义每个 Managed Node 的代号、IP 位址、连线相关资讯和群组。

1.若有对管理端操作的需求,建议于/etc/ansible/hosts 补上 local 的设定。

# For root user.
$ /bin/echo -e "[local]\nlocalhost ansible_connection=local" >> /etc/ansible/hosts

# For sudo user.
$ sudo su -c '/bin/echo -e "[local]\nlocalhost ansible_connection=local" >> /etc/ansible/hosts'

3.6 Hello World

当已上的设置都完成了,您可以试著在终端机里用 Ansible 呼叫本机印出 Hello World。

# ansible localhost -m command -a 'echo Hello World.'

Ansible系列教程-环境部署(一)

欢迎来到 Ansible 的世界!:D

正文完
 
oakcdrom
版权声明:本站原创文章,由 oakcdrom 2019-12-11发表,共计1622字。
转载说明:转载请注明出处。
评论(没有评论)