1.ansible roles简介

Ansible roles是为了层次化、结构化地组织Playbook
roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地include它们
roles一般用于基于主机构建服务的场景中,在企业复杂业务场景中应用的频率很高
以特定的层级目录结构进行组织的tasks、variables、handlers、templates、files等
相当于函数的调用把各个功能切割成片段来执行

2.roles目录结构

nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息

3.ansible-galaxy命令工具

Ansible Galaxy 是一个免费共享和下载 Ansible 角色的网站,可以帮助我们更好的定义和学习roles
ansible-galaxy命令默认与https://galaxy.ansible.com网站API通信,可以查找、下载各种社区开发的 Ansible 角色

通过ansible-galaxy init xxx就可以生成相应的角色目录

可以通过官方网站以及中文权威指南学习ansible

nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息

4.创建第一个roles(apache)

目的:server1给server2和server3安装httpd服务
1)role存放的路径在配置文件/etc/ansible/ansible.cfg中定义:roles_path = /etc/ansible/roles

这里我们使用的是普通用户devops来做ansible,因此应该是roles_path = /home/devops/ansible/roles
先在ansible目录下创建roles目录
然后编辑ansible.cfg配置文件,在配置文件中声明

nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息查看帮助
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息(2)列出已安装的角色,注意路径问题

(3)进入角色目录,创建apache角色,
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息(4)进入apache角色目录,发现有任务目录、触发器目录、模板目录、变量目录等等

删除测试目录,这两个暂时没有用

nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息(5)编写任务的yml文件
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息使用了template模板,因此需要将模板文件放入templates目录下面
使用的copy文件为静态文件,需要放在files目录下
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息添加静态文件,在files目录下放入copy模块对应src文件
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息编写模板文件,拷贝一个过来即可,
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息上面手残写错了
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息
编写触发器的yml文件
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息注意此处触发器的名字及必须和任务里面的notify写的一致
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息编写最终要执行的文件
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息可以通过curl访问
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息当然我们也可以更改端口,但是需要注意的是,更改端口时有优先级。即便我们ansible目录下面的yml文件里面定义了变量端口,但是我们角色下面的vars变量里面没有改变端口,他的端口依然不会改变。
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息此时apache.yml中的端口生效,为8080
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息将/var/main.yml中的ip信息也注释
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息在安装apahce服务的主机上查看配置文件
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息物理机打开防火墙,是虚拟机可以上网
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息

在网上下载已有的角色

同样的,在ansible目录下面,
ansible-galaxy search nginx查找nginx角色
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息

拓展:利用ansible工具setup获取相应的主机名等等

查看db 也就是server2主机信息
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息编写文件,获取想要的主机信息
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息通过ansile server -m setup | less查询
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息

When语句

哪个主机满足条件,哪个主机就进行相应的操作,当不满足时直接跳过。
nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息nsible自动化运维(4)——使用ansible roles实现apache以及获取远程主机信息

相关文章:

  • 2021-08-11
  • 2022-12-23
  • 2022-01-20
  • 2021-04-18
  • 2021-07-03
  • 2021-12-31
  • 2021-11-06
猜你喜欢
  • 2021-12-20
  • 2021-11-16
  • 2022-01-22
  • 2021-08-05
  • 2021-06-01
  • 2022-12-23
  • 2021-12-29
相关资源
相似解决方案