Ansible自动化运维
admin
2023-03-04 17:41:17
0

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.3Ansible自动化运维
以一台为例,关闭防火墙,selinux,
服务器上配置如下:
一,yum安装Ansible
Ansible自动化运维
Ansible自动化运维
二,进入配置文件加上节点ip
vim /etc/ansible/hosts
Ansible自动化运维
管理的主机ip
三,创建ssh免交互式登录(就是直接登录不需要密码)
(1)从ansible主机上生成密钥对
Ansible自动化运维
(2)复制公钥到俩个要管理的主机(这里就演示一个)
Ansible自动化运维
然后输入:ssh 192.168.1.2直接就能切换过去,不需要密码
(3)检查所有之际是否存活,命令如下
Ansible自动化运维
·一般会用三种颜色来表示执行的结果:红色,绿色
其中:红色表示执行过程有异常,表示执行后目标有变化,绿色表示执行成功且没有对目标主机做修改。

(4)command模块
command模块在远程主机执行命令,不支持管道符,重定向等shell的特性
Ansible自动化运维
显示出俩个主机的用户
(5)shell模块
shell模块在远程主机执行命令,和command模块的区别在于它支持shell特性,如管道符,重定向等
Ansible自动化运维
web是清单里面包括了俩个主机(可以多个,在清单里添加就可以)在俩太主机/tmp下创建了俩个HELLOW,txt的文件
(6)copy模块
用于复制指定主机的文件到别的主机
dest:指出目标文件的位置,
src:指出源文件的路径Ansible自动化运维
在本主机上创建个目录直接复制到俩个节点上的/tmp下
(7)hostname模块
用于远程管理主机的主机名
Ansible自动化运维
把主机名改为了asd
(8)yum模块
用于对远程主机管理程序包前提要安装的主机必须配置好yum,这只是提供命令远程,比如安装http,命令如下,
state=(present,latest,absent )(安装,安装最新,卸载)
Ansible自动化运维
(9)service模块
用与管理远程主机上的服务,开启,关闭,查看或开机自启
Ansible自动化运维
(10)user模块
用于管理远程主机的用户账号比如创建用户,uid号,用户的组,用户的附加组
Ansible自动化运维
四,Playbook配置文件
编写脚本来管理远程主机
ansible脚本必须对齐
提前先修改一下配置文件:vim /etc/ansible/hosts
Ansible自动化运维
Ansible自动化运维
标准的
Ansible自动化运维
这是语法检测,显示下面的意思是没有错误
这是创建用户的脚本,如下:---

  • 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
        ...
        执行脚本
        Ansible自动化运维
        五,触发器
        编写脚本更改远程主机的端口号并重新启动

  • 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/目录,比如编写一个创建数据库,在数据库中创建个表,
      首先创建多个目录来存放
      Ansible自动化运维
      然后进入mariadb文件夹中的tasks创建一个脚本
      Ansible自动化运维
      内容为:

  • 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文件夹中编写和脚本
      Ansible自动化运维
      内容为

  • name: restart mariadb
    service: name=mariadb state=restarted
    ...
    再进入files文件夹中复制mysql配置文件
    Ansible自动化运维
    最后进入ansible文件夹中创建脚本
    Ansible自动化运维
    最后启动脚本
    俩个主机就有mysql数据库里面有一个testdb的表
    实验完成

相关内容

热门资讯

红场阅兵在即:首次取消展示重型... 澎湃新闻记者 薛晶俄罗斯将于5月9日在莫斯科举行卫国战争胜利日阅兵活动。据新华社报道,5月7日,俄罗...
吉林化工园区推动产业转型升级抢... 进入生产旺季,吉林化工园区美思德(吉林)新材料有限公司生产线满负荷运转。在数字化车间内,巨大的信息屏...
我国首台双核原子量子计算机“汉... IT之家 5 月 8 日消息,据央视新闻今日消息,由中国科学院牵头,联合武汉大学、华中科技大学和武汉...
台军前高官怒轰M1A2T战车“... 海峡导报综合报道 民进党当局对美采购108辆M1A2T战车,但台陆军前司令李翔宙怒轰,采购M1A2T...
爆火的“平替游”,正在撕开谁的... 【文/观察者网 邓军 编辑/赵乾坤】受中东地缘局势不确定性及国际油价波动等因素影响,今年“五一”假期...
8名网贷设计者,揭秘大厂如何“... 00后李明,是老同学眼中“别人家的孩子”。他在重点大学读着自己梦想的心理学专业,还计划念博士。每次和...
“横行霸道”2亿年,小小螃蟹如... 一项近日发表于eLife的研究汇总形成了迄今最大的关于螃蟹如何运动的数据集。通过对比多个物种,科学家...
移动云 智能新空间 2026移... 做强算力资源、搭建服务平台、焕新AI体验、推进生态共建……5月8日,中国移动2026移动云大会主论坛...
4月岛内县市长声量排行蒋万安居... 海峡导报综合报道 随着2026“九合一”选战逼近,选举相关讨论声量逐步升高。岛内媒体调查4月份全台县...
马斯克官宣:解散xAI! 最新官宣。 当地时间5月6日,埃隆・马斯克在社交平台X正式宣布,xAI将解散并停止作为独立公司运营,...