Ansible之Playbook详解

本文详细介绍了Ansible的Playbook,包括其组成、核心组件如Tasks、Variables、Template、Handlers和Roles,以及实战中如何使用Roles部署Nginx服务器。通过创建角色目录、定义任务、设置变量、编写模板和触发器,最后执行剧本实现自动化运维。
摘要由CSDN通过智能技术生成


playbook ,也叫剧本,是 ansible 的配置、部署、编排语言。它们可以北描述为一个需要希望远程主机执行命令的方案,或者一组 ansible 模块程序运行的命令

大量playbook实例

playbook组成

  • hosts:运行指定任务的目标主机或主机组,需要先在 /etc/ansible/hosts 文件中定义
  • remote_user:选择在远程主机以哪个用户的身份执行剧本
  • sudo_user:设置非管理员有哪些成分
  • tasks:任务列表,由各个模块和参数组成
# 对象:webserver组的主机
# 用户:root
# 任务:创建一个名为nginx1,uid为3000的用户
# 安装nginx
# 启动nginx
- hosts: webservers
  remote_user: root
  
  tasks:       
  - name: create a user	# 当前任务名
    user: name=nginx1 uid=3000	# 使用的模块及模块参数
    ignore_errors: yes
  - name: install nginx
    yum: name=nginx state=present
  - name: start nginx service
    service: name=nginx state=started
  • 检测playbook影响的主机及任务,check一下,并不会真正执行

    ansible-playbook -C --list-hosts --list-tags --list-tasks test.yml
    

playbook核心组件

Tasks

任务,由模块定义的操作的列表

Variables

变量,当我们需要定制一些模板时,需要从外部传入变量来配置 playbook,这种传入变量的语法为 Jinja2:{ { var }} 括号两边都是有空格的

  • 方法1:在执行 playbook 时使用 -e 选项来指定变量

    ansible-playbook -e pkgname=nginx install_nginx.yaml
    
    # install_nginx.yaml
    - hosts: webservers
      remote_user: root
    
      tasks:
      - name: install {
         {
          pkgname }}
        yum: name={
         {
          pkgname }} 
        tags: install {
         {
          pkgname }}
      - name: start {
         {
          pkgname }}
        service: name= {
         {
          pkgname }} state=started enabled=true
    
  • 方法2:在 playbook 中使用 vars 初始化变量

    - hosts: webservers
      remote_user: root
      vars:
        - pkgname: nginx
    
      tasks:
      - name: install {
         {
          pkgname }}
        yum: name={
         {
          pkgname }} 
        tags: install {
         {
          pkgname }}
      - name: start {
         {
          pkgname }}
        service: name= 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值