千家信息网

Ansible自动化运维

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,Ansible中使用的不同角色(使用者,Ansible工具集,作用对象)lnventory是Ansible管理主机信息的配置文件,默认存放在/etc/ansible/hosts中。Ansible工具集
千家信息网最后更新 2026年10月31日Ansible自动化运维

Ansible中使用的不同角色(使用者,Ansible工具集,作用对象)
lnventory是Ansible管理主机信息的配置文件,默认存放在/etc/ansible/hosts中。
Ansible工具集包含(lnventrol,Modules,Pluginx和APL)
lnventrol:管理主机的清单
Modules:执行命令模块
APl:接口
Ansible:核心执行工具
直接实验!
三台linux服务器,其中一台Ansible服务器。
分别为192.168.1.1 192.168.1.2 192.168.1.3
以一台为例,关闭防火墙,selinux,
服务器上配置如下:
一,yum安装Ansible


二,进入配置文件加上节点ip
vim /etc/ansible/hosts

管理的主机ip
三,创建ssh免交互式登录(就是直接登录不需要密码)
(1)从ansible主机上生成密钥对

(2)复制公钥到俩个要管理的主机(这里就演示一个)

然后输入:ssh 192.168.1.2直接就能切换过去,不需要密码
(3)检查所有之际是否存活,命令如下

·一般会用三种颜色来表示执行的结果:红色,绿色
其中:红色表示执行过程有异常,表示执行后目标有变化,绿色表示执行成功且没有对目标主机做修改。

(4)command模块
command模块在远程主机执行命令,不支持管道符,重定向等shell的特性

显示出俩个主机的用户
(5)shell模块
shell模块在远程主机执行命令,和command模块的区别在于它支持shell特性,如管道符,重定向等

web是清单里面包括了俩个主机(可以多个,在清单里添加就可以)在俩太主机/tmp下创建了俩个HELLOW,txt的文件
(6)copy模块
用于复制指定主机的文件到别的主机
dest:指出目标文件的位置,
src:指出源文件的路径
在本主机上创建个目录直接复制到俩个节点上的/tmp下
(7)hostname模块
用于远程管理主机的主机名

把主机名改为了asd
(8)yum模块
用于对远程主机管理程序包前提要安装的主机必须配置好yum,这只是提供命令远程,比如安装http,命令如下,
state=(present,latest,absent )(安装,安装最新,卸载)

(9)service模块
用与管理远程主机上的服务,开启,关闭,查看或开机自启

(10)user模块
用于管理远程主机的用户账号比如创建用户,uid号,用户的组,用户的附加组

四,Playbook配置文件
编写脚本来管理远程主机
ansible脚本必须对齐
提前先修改一下配置文件:vim /etc/ansible/hosts


标准的

这是语法检测,显示下面的意思是没有错误
这是创建用户的脚本,如下:---

  • hosts: web1
    remote_user: root
    tasks:
    • name: adduser
      user: name=user2 state=present
      tags:
      • aaa
    • name: addgroup
      group: name=root system=yes
      tags:
      • bbb
  • hosts: web2
    remote_user: root
    tasks:
    • name: copy file to web
      copy: src=/etc/passwd dest=/home
      tags:
      • ccc
        ...
        执行脚本

        五,触发器
        编写脚本更改远程主机的端口号并重新启动

  • hosts: web1
    remote_user: root
    tasks:
    • name: change port
      command: sed -i 's/Listen\ 80/Listen\ 8080/g' /etc/httpd/conf/httpd.conf
      notify:
      • restart httpd server
        handlers:
    • name: restart httpd server
      service: name=httpd state=restarted
      ...
      六,角色
      角色一般存放在/etc/ansible/roles/目录,比如编写一个创建数据库,在数据库中创建个表,
      首先创建多个目录来存放

      然后进入mariadb文件夹中的tasks创建一个脚本

      内容为:

  • name: install mariadb
    yum: name=mariadb-server state=present
  • name: move config file
    shell: "[ -e /etc/my.cnf ]&& mv /etc/my.cnf /etc/my.cnf.bak"
  • name: provide a new config file
    copy: src=my.cnf dest=/etc/my.cnf
  • name: reload mariadb
    shell: systemctl restart mariadb
  • name: create database testdb
    shell: mysql -u root -e "create database testdb;grant all on testdb.* to'test'@'192.168.8.%' identified by 'test123';flush privileges;"
    notify:
    • restart mariadb
      ...
      句号表示 -
      然后进入hanglers文件夹中编写和脚本

      内容为

  • name: restart mariadb
    service: name=mariadb state=restarted
    ...
    再进入files文件夹中复制mysql配置文件

    最后进入ansible文件夹中创建脚本

    最后启动脚本
    俩个主机就有mysql数据库里面有一个testdb的表
    实验完成
主机 文件 模块 脚本 管理 配置 命令 用户 文件夹 服务 工具 数据 数据库 服务器 清单 目录 目标 角色 内容 多个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技网 互联网科技公司经营范围 苏州找大状互联网科技有限公司 中关村互联网科技集团 金诺互联网科技 互联网与科技金融数据 互联网科技战争 万易互联网科技 未来的互联网科技 互联网高科技企业 广西拼得多互联网科技有限公司 北京大学互联网科技怎么样 广州市恰铎互联网科技有限公司 翼展科技 首家互联网医院 众安科技工业互联网合作 中天科技中国工业互联网 互联网安防科技感 广州互联网高科技取餐柜 山东大美朱楼互联网科技有限公司 长沙易易互联网科技有限公司 上海挚品互联网科技有限公司 上海喔噻互联网科技有限公司 亿人帮互联网科技有限公司 河南云网互联网络科技有限公司 重庆科技学院互联网 欧洲十大科技互联网公司 互联网科技商业 本届互联网博览会上的黑科技 众安科技工业互联网合作 沐思想互联网科技有限公司
0