mtran
作者mtran·2021-02-04 14:40
工程师·inspur

ANSIBLE 集中管理AIX/POWER LINUX

字数 4405阅读 3754评论 0赞 4

Ansible 是什么?

Ansible 帮助简化 IT 的自动化运维,替代人工重复性的工作,应用于包括云环境的主机部署, IT 的配置管理,应用部署等等场景。

一个部署

为什么选用 Ansible

l 简单

  • 贴近自然语言的自动化
  • 不需要专业的编程能力
  • 任务顺序执行
  • 对每个团队都适用
  • 快速提高生产力

l 强大

  • 应用部署
  • 配置管理
  • 工作流编排
  • 网络自动化
  • 应用全生命周期的编排和管理

l 无代理

  • “无代理”架构
  • 使用 OpenSSH 或 WinRM
  • 利用被管理平台原生 API
  • 迅速上手
  • 更高效、更安全

l Ansible 的”幂等”性 ,

  • 如果你再一次地执行 Ansible 的 moudle ( ,moudle 只会执行必要的改动 , 只会改变需要改变的地方 . 所以重复多次执行 playbook 也很安全 .

当各个团队都在进行自动化且彼此之间需要协作时 , 就需要一个自动化平台

Ansible 的应用场景

l 编排

l 配置管理

l 应用部署

l 初始化安装

l 持续集成

l 安全合规

l ……

Ansible 主要概念

l Control node – 安装了 Ansible 并运行 playbook 对其他主机进行管理的主机

l Managed node– 被 Ansible 管理的系统或者设备(比如: AIX , IBM i , Linux , Windows )

l Inventory – 被管理节点列表

l Modules – Ansible 基本功能单元

l Tasks – 由 Ansible modules 组合成一系列动作列表去完成特定的管理任务

l Playbooks – 一系列 tasks 构成的列表,存放在 YAML 格式的文件中

Redhat Ansible 自动化管理平台

Redhat Ansible 自动化管理平台结构如下

Red Hat Ansible Tower (开源版本为 AWX )

企业级 Ansible 图形化管理工具。 Tower ( AWX )带来的好处:

l 用户可以更简单直观地使用 Ansible

l 通过不同的角色把 Ansible 管理者和使用者分开

l 对 Ansible Playbook 运行情况进行记录和监控,实时掌握系统的运维状态

l 提供 Rest API 供第三方程序进行调用可扩充

Red Hat Ansible Engine

Ansible 核心功能

Red Hat Ansible Endpoints

被管理节点(包括 IBM Power Systems , IBM Z Systems , X86 system , windows 等)

Redhat Ansible 安装

RPM 方式

准备 Redhat ppc64le 7 的系统光盘并定义 repo 资源(本例在 Power Linux 环境中)

将准备的好的 ansible rpm 及其依赖包下载后

使用 yum 命令进行安装:

yum 会自动寻找相关的系统依赖包进行安装

安装结束后,输入如下命令可以测试 ansbile 是否安装成功:

ansible –version

PIP 方式

安装 epel 源

yum install http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y

如果上述 epel 速度慢可以用如下的阿里的源

wget http://mirrors.aliyun.com/repo/epel-7.repo

mv epel-7.repo /etc/yum.repos.d/

安装 pip

yum install python-pip python-devel -y

使用 pip 安装 ansible

pip install ansible

如果默认的 pip 源速度慢,可以使用如下 pip 源代替

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ansible

测试 ansible 是否安装成功

ansible --version

AIX Ansible 安装

https://www.ibm.com/support/pages/aix-toolbox-linux-applications-downloads-alpha

拷贝脚本 yum.sh 到 AIX 系统并执行 yum.sh 安装 yum 。

安装 yum 后,就可以用 yum 安装 AIX 下的 Ansible :

yum install ansible

用命令 ansible –version 测试 ansible 是否安装成功。

Ansible 的 SSH 配置

安装 Ansible 后,需要在 ansible control node 上配置 SSH 连接到被管理节点。可以用如下命令生成 ssh 公钥和私钥

ssh-keygen -t rsa

将公钥拷贝到被管理节点 (Linux 或者 AIX) :

ssh-copy-id root@managed_node_IP

测试无密码 ssh 登陆是否有效:

ssh root@ managed_node_IP

Ansible Inventory 配置

在执行 playbook 之前,需要对 Ansible 的 Inventory 文件进行配置。如下是一个简单的 Inventory 文件:

[webservers]

node1

node2

[dbservers]

node3

[php:children]

webservers

dbservers

其中定义了三个组, webservers , dbservers , php 。 Webservers 包括 node1 和 node2 , dbservers 包括 node3 ,而 php 包括了 webservers 和 dbservers 两个组,所以包括了 node1 , node2 和 node3.

另外可以在 Inventory 文件中定义变量,常用的有如下几种:

ansible_ssh_host

将要连接的远程主机名 . 与你想要设定的主机的别名不同的话 , 可通过此变量设置 .

ansible_ssh_port

ssh 端口号 . 如果不是默认的端口号 , 通过此变量设置 .

ansible_ssh_user

默认的 ssh 用户名

ansible_ssh_pass

ssh 密码 ( 这种方式并不安全 , 我们强烈建议使用 --ask-pass 或 SSH 密钥 )

ansible_sudo_pass

sudo 密码 ( 这种方式并不安全 , 我们强烈建议使用 --ask-sudo-pass)

ansible_sudo_exe (new in version 1.8)

sudo 命令路径 ( 适用于 1.8 及以上版本 )

ansible_connection

与主机的连接类型 . 比如 :local, ssh 或者 paramiko. Ansible 1.2 以前默认使用 paramiko.1.2 以后默认使用 'smart','smart' 方式会根据是否支持 ControlPersist, 来判断 'ssh' 方式是否可行 .

ansible_ssh_private_key_file

ssh 使用的私钥文件 . 适用于有多个密钥 , 而你不想使用 SSH 代理的情况 .

Ansible 混合纳管 PowerLinux 和 AIX

Ansible 支持 AIX 的内建模块

Ansible 已经内建了对 AIX 系统的基本支持,支持 AIX 的 Ansible module 可以从

https://docs.ansible.com/ansible/2.9/modules/list_of_all_modules.html

搜索 aix 关键字,主要包括如下几个模块:

aix_devices – Manages AIX devices

aix_filesystem – Configure LVM and NFS file systems for AIX

aix_inittab – Manages the inittab on AIX

aix_lvg – Manage LVM volume groups on AIX

aix_lvol – Configure AIX LVM logical volumes

installp – Manage packages on AIX

mksysb – Generates AIX mksysb rootvg backups

在安装了 Ansible 之后,就可以直接使用以上模块对 AIX 系统进行管理。

Ansible 中 Galaxy 中对 AIX 的支持

在网站

https://galaxy.ansible.com/

中点击 Search ,搜索关键字“ AIX ”,可以找到支持 AIX 的 Ansible role 。

然后用 ansible-galaxy 安装到 ansible 的控制节点,例如:要安装角色 ansible_role_aix_lvm ,可以在 Ansible 的控制节点上执行:

ansible-galaxy install d_little.ansible_role_aix_lvm

角色会被默认安装到用户目录的 .ansible/roles 下

Ansible 管理 Power Linux 和 AIX 实例对比

下面以使用 Ansible AD-HOC 模式下安装 Linux 和 AIX 软件对比两种系统下 Ansible 的异同

l Power Linux
配置好 Inventory 后,使用 Ansible 的 YUM 模块安装软件 emacs :

其中 rhelgroup 为 Inventory 文件 hosts 中定义的 redhat Linux group

l AIX

配置好 Inventory 后,使用 Ansible 的 YUM 模块安装软件 nim server:

其中的 aixgroup 为 Inventory 文件 hosts 中定义的 AIX group 主机, -m installp 表示使用 ansible installp 模块。 Ansilbe module 的具体参数含义可以通过 ansible-doc installp 在线文档来进行查看具体的参数含义。

从上面的举例可以看出,不管管理 AIX 还是 Power Linux , Ansible 是通过不同的 Module 来进行管理的。 Module 是最基本的 Ansible 基本功能模块。 Ansible 对不同的操作系统或者设备的支持也是通过开发不同的 Module 进行支持的。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

4

添加新评论0 条评论

Ctrl+Enter 发表

相关文章

相关问题

相关资料

X社区推广