RedHat Linux 8 中ansible程序 part2 playbook

ansible中playbook实施

编写和运行 ansible playbook
对于操作查看指定用户,我们使用临时命令来做的话:
ansible pc2.hehe.com -m user -a “name=redhat uid=1000 state=present”
在这里插入图片描述
如果使用palybook 来编写操作,我们需要用 yaml 格式编写,后缀扩展名为yml
yaml 对于缩进量没有严格要求,但是有两个基本原则’
1.处于同一层次结构中同一级别的数据元素必须具有相同的缩进量’
2.如果项目属于其他项目的子项,其缩进量必须大于父项’
同一 playbook 中的键应当使用相同的缩进量

playbook编写方式:
创建文件并编写:vim user.yml

---						#格式开头三个破折号,文档的开始标记
- name: Check user		#对playbook功能进行描述,选择写
  hosts: pc1.hehe.com	#添加受管主机或组
  tasks:				#运行模块
  	- name: Redhat User
  	  user:
  	    name: redhat
  	    uid: 1000
  	    state: present
...						#格式,结尾三个省略号,结束标记(通常可以省略)

执行 playbook 前最好进行语法验证
ansible-playbook --syntax-check xxx.yml

在这里插入图片描述检查完语法后,可以再测试空运行看命令执行是否有误
ansible-playbook -C xxx.yml
在这里插入图片描述
检测都没有问题后,我们就可以去真实执行playbook了
ansible-playbook xxx.yml
在这里插入图片描述
实验测试:
为受管主机去安装apache服务并且设置为开机启动

[root@work testlist-inventory]# vim service.yml
---
- name: Setup Apache
  hosts: usersevers
  tasks:
    - name: Install Apache
      yum:
        name: httpd
        state: latest

    - name: Apache is enable
      service:
        name: httpd
        state: started
        enabled: true
...

然后使用 ansible-playbook --syntax-check 和 ansible-playbook -C 进行语法和空运行检测,没有问题后我们直接去进行操作
在这里插入图片描述

提高输出详细程度
ansible-playbook 默认输出不提供详细任务执行信息。
-v 参数提供,共四个级别:
-v #显示任务结果
-vv #显示任务结果和任务配置
-vvv #包含关于与受管主机的连接信息
-vvvv #增加连接插件相关的额外详细程度选项(包括受管主机上用于执行脚本的用户及所 执行的脚本)

yaml 的注释方式
1.在行前直接写 # 注释
2.在行中也可以用 # 注释行中#号后的内容

playbook中多个tasks实施操作

实验操作:在受管主机中安装apache服务,并且在火墙中添加http服务,开启服务并开机启动,设置默认发布页面为“hello world”,最后在本机连接测试

[root@work testlist-inventory]# vim intranet.yml 
--- 
- name: Enable intranet services 
  hosts: usersevers 
  become: yes 	#使用身份提升,因为需要设置firewall
  tasks: 
    - name: latest version of httpd and firewalld installd #检测 httpd 是否安装和是否最新版本
      yum: 
      name: 
        - httpd 
        - firewalld 
      state: latest 
    
    - name: test html page is configured #检测是否配置默认发布页面 
      copy: 
        content: "Welcome to world!\n" 
        dest: /var/www/html/index.html
        
    - name: firewalld enabled and running #检测防火墙是否开启并处于 enable 状态 
      service: 
        name: firewalld 
        enabled: true 
        state: started
           
    - name: firewalld permits access to httpd service #检测防火墙是否允许 httpd 服务访问
      firewalld: 
        service: http 
        permanent: true 
        state: enabled 
        immediate: yes 

   - name: httpd enabled and running #检测 httpd 是否开启和设置开机启动 
     service: 
       name: httpd 
       enabled: true 
       state: started

- name: Test intranet web server #在本机测试 
  hosts: localhost 
  become: no 
  tasks: 
    - name: connect to intranet web server #测试访问pc1
      uri:
        url: http://servera.lab.example.com 
        return_content: yes 
        status_code: 200	#200表示连接正常
...

还是先进行语法和空运行检测没有问题后我们执行playbook
在这里插入图片描述
进行真实执行后我们得到成功的答案,为了验证可以用浏览器测试

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Howei__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值