bjbingshan
作者bjbingshan·2021-02-24 12:23
解决方案架构师·浪潮商用机器有限公司

Ansible工具和Aix系统运维管理的一些实践

字数 3993阅读 5770评论 0赞 1
本文探讨在Aix 系统维护方面的方法,不详细介绍ansible安装,不涉及容器和数据库,主要是ansible的使用方法、在模块方面一些应用。具体实践包含一些证券、保险客户的实际案例,但截图部分以测试环境代替。

Ansible 工具的好处

  • 开源、无需注册、轻量无代理、自动化、安全易用;
  • 在系统配置、程序部署、命令运行、批量管理等方面使用时方便快捷;
  • 支持脚本和使用 YAML 的 Playbooks 模式;
  • 基于 Python ,支持多种程序语言;
  • 有众多的模块(如 Docer 、 AWS 、 OpenStack ……)功能,且支持用户自定义模块;
  • 有强大的社区支持,等等……

Aix系统常用维护动作

(1) 安装补丁、升级软件
(2) 建立用户、设置参数
(3) 逻辑卷操作(卷组、逻辑卷、文件系统的建、改、删、激活、关闭、挂载等操作)

Aix 平台的维护痛点

  • 逻辑卷和文件系统根据需要经常要扩容、修改,生产环境操作要慎重;
  • 系统数量多的时候维护困难;
  • 维护很多时候在夜间,人工操作容易出错,等等……

使用 ansible 维护 Aix 系统的准备工作

  1. 编辑 /etc/ansible/host
    在ansible管理节点上编辑该文件,通常按平台或系统类型进行分组,如[aix-server] 、 [dbserver] 、……
    这种内容:9.123.126.191 或 aix-test1 或 www.example.com
  2. 修改 /etc/ansible/ansible.cfg
    在ansible管理节点上编辑该文件,如 “remote_user, remote_port, log_path, ……”
  3. 配置SSH
    在ansible管理节点上:ssh-keygen -t rsa
    scp key_rsa.pub to client's system .ssh directory
    test ssh no password

如果只是临时测试环境,也可以不编辑以上配置文件,直接书写一个类似hosts-aix文件
[aixgroup]
aix7_test ansible_ssh_host=10.152.211.164 ansible_ssh_pass=root

ansible 应用基础

语法 : ansible [-m module_name] [-a args]

简单的模块示例:
ansible hostname –m command –a ‘lsdev –Cc adapter’
或: ansible –i hosts-aix all -m command -a 'hostname' , hosts-aix 为受管机信息,包含主机名、 IP 、用户口令

模块和命令方式的一些说明:

command 执行受管机命令或脚本
shell 执行受管机命令或脚本,支持通配符、管道符、变量
script 执行管理机本地脚本

copy 和 file 两个模块都可以传输文件并设定属主、组和权限, file 还可以建立软硬连接、删除文件、目录或软连接。使用参数有dest=: 指定目标文件路径,只能是绝对路径,如果 src 是目录,此项必须是目录,owner: 指定属主
group: 指定属组,mode: 指定权限 , 可以以数字指定比如 0644,content: 代替 src ,直接往 dest 文件中写内容,可以引用变量,也可以直接使用 inventory 中的主机变量,backup: 在覆盖之前将原文件备份,备份文件包含时间信息,yes: 默认项,如果目标主机包含该文件,但内容不同,则强制覆盖,no: 则只有当目标主机的目标位置不存在该文件时,才复制。

若创建用户可使用:
ansible test-server -m user -a 'name=haha comment="ansible add user" uid=1000'

软件维护时参数state 属性有
present # 安装
latest # 更新到最新
absent # 卸载

在Linux 平台的Service的操作可以是如下
ansible test -m service -a "name=network state=restarted args=eth0"
ansible erp -m service -a 'enabled=on name=httpd state=started'
在Aix环境需要使用 command 或 shell ,执行 startsrc 或 refresh 命令

ansible提供的模块和Playbook的方式为重复性的操作和大批量的操作提供了现实的方便。

使用内建Aix系统模块或galaxy插件维护Aix系统

Ansible 已经内建了对 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-doc -l # 查看所有模块说明
ansible-doc -s MODULE_NAME # 查看指定模块的详细帮助

如建立新的卷组 datavg
传统上可以使用command或shell执行写好和测过的脚本,若使用上述自建模块可以用下述方法:
首先需要将aix_lvg段写在yaml文件的tasks 中:

  tasks:
  - name: "Create a volume group datavg"
    aix_lvg:
      vg: datavg
      pvs: hdisk2
      pp_size: 128
      vg_type: scalable
      state: present

在ansible控制节点上使用playbook方式执行:

在客户机上查看

建立逻辑卷和文件系统还要分别使用aix_lvol和aix_filesystem,也可以写在一个 tasks 中再执行。

  tasks:
  - name: "Create a logic volume"
    aix_lvol:
     vg: datavg
     lv: datalv
     size: 512M
     pvs: [ hdisk1, hdisk2 ]
     copies: 2

  - name: "Create a File System in a previously defined logical volume"
    aix_filesystem:
    device: datalv
    filesystem: /datafs
    state: present

对修改、删除类操作也很简单,可参考https://docs.ansible.com/ansible/2.9/modules/list_of_all_modules.html 中的Aix模块的具体说明和示例,此处不赘述。
对于较复杂的或大量顺序性操作,也可以使用 galaxy 方式的 role规则。
这种方式需要先安装插件 ansible-galaxy install d_little.ansible_role_aix_lvm

安装之后在默认roles目录下生成d_little.ansible_role_aix_lvm子目录

使用 role 方式, playbook 的 yaml 示例:

- name: "Build VG and LV and FS"
  hosts: all
  become: yes
  gather_facts: no
  vars:
    manage_lvm: true
    vglist:
      # Build
      - vgname: datavg
        disks: 
          - hdisk1
        state: present
        force: true
        lvlist:
          - lvname: lv_data1
            lvcopies:  1
            lvsize: 1G
            fsauto_mount: true
            fsstate: mounted
            fsfilesystem: /mnt/data
            ……
  roles:
    - role: d_little.ansible_role_aix_lvm 
  tasks:

执行ansible-playbook -i /root/hosts-aix ./galaxy_aix_lvm.yml可以创建卷组、多个逻辑卷和文件系统,完成较完整的维护任务。
另外,Aix系统上的PowerHA软件配置,不推荐使用ansible工具来维护,PowerVC、数据库等方面同样可以使用ansible工具,但是见仁见智,本篇不做说明。

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

1

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广