Ansible中Playbook的光速教程

什么是Playbook?

playbook是由一个或者多个模块组成的, 使用多个不同的模块, 完成一件事。

playbook通过yaml语法来识别描述的状态文件, 扩展名为yaml

Playbook的三个语法特点

缩进

YAML使用一个固定的缩进风格表示层级结构, 每个缩进由两个空格组成, 不能使用Tab

冒号

除了以冒号为结尾的以外, 其他所有的冒号后面必须要有空格。

短横线

  • 表示列表项, 使用一个短横线加一个空格。
  • 多个项使用同样的缩进级别作为同一列表。

一个安装Httpd的简单实例:

# ansible install httpd

- hosts:    # 这里是需要安装的机器列表, 也可以是ansible配置好的组名
  - 192.168.199.110
  - 192.168.199.180
  tasks:    # 任务块
    - name: install httpd server   # 描述信息
      yum:    # ansible 模块
        name: httpd,lrzsz  # 需要安装的软件名称 
        state: installed   # 执行动作
    - name: start httpd server
      service:
        name: httpd
        state: started
        enabled: yes

Playbook 常用到的关键字

hosts

hosts这一块的内容一个或者多个组或主机, 以逗号为分隔符, 或者也可换行写。

例子如下:

两种写法, 都可:

- hosts: web
  remote_user: root   # 远程执行的用户
  sudo: yes   # 是否使用sudo
  sudo_user: lanyulei   # 登陆到远程机器后sudo到其他用户

或者

- hosts:
  - 192.168.1.1
  - 192.168.1.2

如果你需要在使用sudo时指定密码, 可在运行ansible-playbook命令时加上选项--ask-sudo-pass(-K)

如果使用sudo时, playbook疑似被挂起, 可能是在sudo提示处被卡住, 这时可执行Control-C杀死卡住的任务, 再重新运行一次。

点击查看完整文章

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章