Ansible(剧本,角色编写)

文章目录

  • 一、剧本(playbook)
    • 1.playbook介绍
    • 2.playbooks的组成
    • 3.案例:编写httpd的playbook
    • 4.定义,应用变量
    • 5.指定远程主机sudo切换用户
    • 6.when条件判断
    • 7.迭代
    • 8.Templates 模块

一、剧本(playbook)

1.playbook介绍

playbook是ansible用于配置,部署,和管理被控节点的剧本。通过playbook的详细描述,执行其中的tasks,可以让远端主机达到预期的状态。playbook是由一个或多个”play”组成的列表。 当对一台机器做环境初始化的时候往往需要不止做一件事情,这时使用playbook会更加适合。通过playbook你可以一次在多台机器执行多个指令。通过这种预先设计的配置保持了机器的配置统一,并很简单的执行日常任务。

ansible通过不同的模块实现相应的管理,管理的方式通过定义的清单文件(hosts)所管理的主机包括认证的方式连接的端口等。所有的功能都是通过调用不同的模块(modules)来完成不同的功能的。不管是执行单条命令还是play-book都是基于清单文件。

**playbook格式:**playbook由YMAL语言编写。YMAL格式是类似于JSON的文件格式,便于人理解和阅读,同时便于书写。

一个剧本里面可以有多个play,每个play只能有一个tasks,每个tasks可以有多个name。

2.playbooks的组成

**Tasks:**任务,即通过 task 调用 ansible 的模块将多个操作组织在一个playbook 中运行。

**Variables:**变量

**Templates:**模板

**Handlers:**处理器,当 changed 状态条件满足时,(notify)触发执行的操作。

**Roles:**角色

3.案例:编写httpd的playbook

(1)vim test1.yaml

---
- name: install apache
  hosts: webservers
  remote_user: root
  tasks:
  - name: test connection
    ping:
  - name: disable selinux
    command: '/usr/sbin/setenforce 0'
    ignore_errors: true
  - name: disable firewalld
    service: name=firewalld state=stopped
  - name: install httpd
    yum: name=httpd
  - name: copy configuration file for httpd
    copy: src=/opt/httpd.conf dest=/etc/httpd/conf/httpd.conf
    notify: "restart httpd"
  - name: start httpd
    service: name=httpd state=started enabled=yes
  handlers:
  - name: restart httpd
    service: name=httpd state=restarted

在服务端准备http.conf文件

(在/etc/httpd/http.conf 复制一份文件到opt目录下 )

并且修改其中 端口 和server name 端口

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5qejaMZg-1647754704510)(C:\Users\zhuquanhao\Desktop\截图命令集合\linux\Ansible\Ansible之playbook剧本\0.1.bmp)]

Ansible(剧本,角色编写)_第1张图片

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wxFsYXQd-1647754704511)(C:\Users\zhuquanhao\Desktop\截图命令集合\linux\Ansible\Ansible之playbook剧本\2.bmp)]

(2)运行playbook 剧本

ansible-playbook test1.yaml

补充参数:
-k ( -ask-pass) :用来交互输入ssh密码
-K ( -ask-become-pass) :用来交互输入sudo密码

你可能感兴趣的:(playbook)