使用Ansible中的playbook

Playbook的功能

playbook的主要功能在于将预定义的一组主机,装扮成事先通过ansible中的task定义好的角色。task实际是调用ansible的一个module,将多个play组织在一个playbook中,即可以让他们联合起来,按事先编排的机制执行预定义的动作。playbook 是由一个或多个play组成的列表;Playbook 文件使用YAML来写的。

YAML(Yet Another Markup Language)

是一种表达资料序列的格式,类似XML,2001年首次发表。

特点:

可读性好、和脚本语言交互性好、易于实现、适用程序执行流梳理方式、可扩展性强。

语法简介:
在文件中用[---]开始;
在文件中用[...]结尾;
次行一般书写文件内容;
缩进严格、大小写敏感;
key/value可以多行书写也可一行书写,一行书写用,隔开;
value可以是个字符串,也可是list;
一个play需要包括name和tasks;
name 是描述、tasks 是动作;
一个name只能包含一个task;
扩展名称yml或者yaml。

YAML 列表

[Linux,C++,Java,Python]

- Linux
- C++
- Java
- Python

YAML的字典

字典的作用:存放键值

name:westos
age:12
jobs:linux

{name: "westos", age: "12", jobs: "linux"}

-  等价于  [ xxxxxx ]
子元素的子元素前不须加 -

playbook执行命令

ansible-playbook xxx.yml ...  ##执行playbook

--check|-C	##检测
--syntax-check	##check language
--list-hosts	##列出hosts
--list-tags	##列出tag
--list-tasks	##列出task
--limit		##指定执行主机
-v -vv		##现实过程

Playbook的核心组件

name			#可选,建议使用多用于说明
hosts			#受控主机列表
tasks			#任务
			#用与选择执行部分代码

vim 设定技巧

vim ~/.vimrc   
autocmd FileType yaml setlocal ai ts=2 sw=2 et

setlocal	##设定当前文件
ai		##自动退格对齐     auto indent
ts		##tab建长度为2空格 tabstop=2
sw		##缩进长度为2	   shiftwidth=2
et		##把tab键变成空格  expandtab

基本示例

安装启用vstpd

vim vstpd.yml
//
---
- name: install vsftpd   ##描述可以不写,只是为了提示操作者执行步骤,此playbook是为了下载并使用vstpd
  hosts: all  	##所有远程主机,也可以写具体ip号或者具体清单名称
  remote_user: devops  ##控制远程主机的devops用户执行以下操作
  tasks: 	 ###任务,一个name只能包含一个task
    - name: install vsftpd
      dnf:
        name: vsftpd
        state: latest
        disable_gpg_check: yes   ##跳过对源GPG校验(或者授权检测),可以下载软件

    - name: configure vsftpd   ##配置 vsftp
      lineinfile:
        path: /etc/vsftpd/vsftpd.conf
        regexp: "anonymous_enable=NO"
        line: "anonymous_enable=YES"
        backrefs: yes

    - name: start vsftpd  ##开启 vsftpd
      service:
        name: vsftpd
        state: restarted
        enabled: yes

    - name: configure firewall   ##配置 firewall
      firewalld:
        service: ftp
        permanent: yes
        state: enabled
        immediate: yes
~   
//
[lee@ansible ansible]$ ansible-playbook vstpd.yml  ##执行playbook,执行成功,没有报错

PLAY [install vsftpd] **********************************************************

TASK [Gathering Facts] *********************************************************
ok: [172.25.254.211]

TASK [install vsftpd] **********************************************************
changed: [172.25.254.211]

TASK [configure vsftpd] ********************************************************
changed: [172.25.254.211]

TASK [start vsftpd] ************************************************************
changed: [172.25.254.211]

TASK [configure firewall] ******************************************************
changed: [172.25.254.211]

PLAY RECAP *********************************************************************
172.25.254.211             : ok=5    changed=4    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

测试:
在note1主机上:vstpd服务安装并且开启

[root@note1 ~]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2021-08-22 14:39:53 CST; 3min 59s ago   ##服务开启
  Process: 4156 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
 Main PID: 4157 (vsftpd)
    Tasks: 1 (limit: 5043)
   Memory: 544.0K
   CGroup: /system.slice/vsftpd.service
           └─4157 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值