千家信息网

Ansible自动化运维

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Ansible中使用的不同角色(使用者,Ansible工具集,作用对象)lnventory是Ansible管理主机信息的配置文件,默认存放在/etc/ansible/hosts中。Ansible工具集
千家信息网最后更新 2026年11月01日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