0
点赞
收藏
分享

微信扫一扫

ansible学习四(playbooks语法)

Playbooks组成部分:
Target section 定义将要执行playbooks的远程主机组
Variable section 定义playbook运行时需要使用的变量
Tast section 定义将要在远程主机上执行的任务列表
Handler section 定义task执行完成以后需要调用的任务
Target section常用参数
Hosts:定义远程主机组
User:执行该任务的用户
Sudo:设置为yes的时候,执行任务的时候使用root权限
Sudo_user:设置用户,执行时的权限为该用户
Connection:通过什么方式连接到远程主机,默认是ssh
Gather_facks:是否启用在远程主机执行setup模块,默认执行,setup模块 用于获取主机信息
Variabler section常用参数
Vars:定义格式 变量名:变量值
Vars_files:指定变量文件
Vars_prompt:用户交互模式自定义变量
Setup:模块去远程主机的值
Task section
Name:输出到屏幕的信息 定义一个名称
Action:定义执行的动作调用的ansible模块,例如 yum name=http state=installed
Copy:复制本地文件到远程主机
Template:复制本地文件到远程主机但是他可以在本地文件中调用变量
Service:定义服务的状态
 
playbook执行方式
ansible-playbook playbook文件位置
 
举例:
 
#表示该文件时YAML文件

#选择的主机组

  • hosts: webservers

#这个是变量
  vars:
    http_port: 80
    max_clients: 200
  tasks:
#利用yum模块来操作
  

  • name: ensure apache is at the latest version

    yum: pkg=httpd state=latest
  

  • name: write the apache config file

    template: src=/src/httpd.j2 dest=/etc/httpd.conf
#触发重启服务器(只要上面的httpd.conf文件变化了,就触发handlers中的restart apache)
    notify:

  • restart apache
  • name: ensure apache is running

    service: name=httpd state=started
#这里的restart apache 和上面的触发是配对的。这就是handlers的作用。相当于tag
  handlers:
    

  • name: restart apache

      service: name=httpd state=restarted
 
各模块的作用:
Vars:配置变量 变量名:变量值(变量名只能是字母、数字、下划线组 成,且只能以字母开头)
vars:
http: apache #给变量直接赋值
port: 80
 

ansible学习四(playbooks语法)_ansible


 
Vars_files参数:指定变量文件
Vars_files:

  • variables #变量文件位置

 

ansible学习四(playbooks语法)_自动化运维_02

ansible学习四(playbooks语法)_ansible_03

 Vars_prompt参数:交互式给变量赋值
Vars_prompt:

  • name: siteapp #变量名

 Prompt: please enter your site #交互式(提示)
 Private: no #是否隐藏输入的变量值
 

ansible学习四(playbooks语法)_ansible_04


Copy模块:分发文件,分发过程中不进行赋值
Copy src=files/test.txt dest=files/test.txt
 

ansible学习四(playbooks语法)_ansible_05


Template模块:分发文件,分发过程中进行变量的赋值
Template src=files/test.txt dest=/tmp/test.txt
 

ansible学习四(playbooks语法)_ansible_06


 
 

举报

相关推荐

0 条评论