码迷,mamicode.com
首页 > Web开发 > 详细

Ansible palybook简介及基础安装Apache实例

时间:2020-07-09 22:30:32      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:roo   pac   rsync   ice   tags   aml   常用   没有   编辑   

Playbook简介

playbook是由一个或多个模块组成得,使用多个不同得模块, 完成一件事情

playbook通过yaml语法识别描述得状态文件,扩展名是yaml。

yaml 三板斧

缩进:yaml使用一个固定的缩进风格表示层级结构,每个缩进由两个空格组成,不能使用tabs(默认,因为一个tab=4个空格)

解决方法:修改vim编辑器,文件默认没有
[root@manager ~]# cat .vimrc
set tabstop=2

冒号:以冒号结尾的除外,其他所有冒号后面所有必须有空格。多个项使用同样的缩进级别作为统一列表。
短横线:表示列表项,使用一个段横杠加一个空格。多个想使用同样的缩进级别作为统一列表。

基本语法

- host: all
  tasks:

    - name: Install Rsync
      yum: name=rsync state=installed

    - name: Configure Rsync
      copy: src=

    - name: Start Rsync Service
      service: name=rsyncd state=started enabled=yes

Playbook的核心元素

  • hosts:主机清单
  • tasks:任务
  • vars:变量
  • handlers:特定条件触发的任务
  • template:包含了模块语法的文本文件

ansible-playbook命令的常用选项

命令格式:ansible-playbook [option] filename

-C, --check 模拟运行
--list-hosts 列出剧本主机清单
--list-tags 列出剧本标记
--list-tasks 列出剧本任务
--syntax-check 检测语法

ansible playbook安装apache示例

1)准备apache的配置文件
[root@manager conf]# mkdir -p /etc/ansible/ansible_playbook/conf
[root@manager conf]# scp root@10.10.10.14:/etc/httpd/conf/httpd.conf /etc/ansible/ansible_playbook/conf
[root@manager conf]# sed -i ‘s#Listen 80#Listen 8080#g‘ httpd.conf
[root@manager ansible_playbook]# vim webserver.yaml 
- hosts: web01
  tasks:

    - name: Install Httpd
      yum: name=httpd state=installed

    #- name: Configure Httpd

    - name: Start Httpd
      service: name=httpd state=started enabled=yes
[root@manager ansible_playbook]# ansible-playbook --syntax-check webserver.yaml  #检测语法
playbook: webserver.yaml  #出现playbook:*.yaml表示没有错误

- hosts: web01
  tasks:

    - name: Install Httpd
      yum: name=httpd state=installed

    - name: Configure Httpd
      copy: src=./conf/httpd.conf dest=/etc/httpd/conf/httpd.conf
      notify: Restart Http Service  #监控这个任务,如果发生变化,触发Restart Http Service

    - name: Start Httpd
      service: name=httpd state=started enabled=yes

  handlers:
    -name: Restart Http Service    #必须与之前的相同才可以触发
     service: name=httpd state=restarted

Ansible palybook简介及基础安装Apache实例

标签:roo   pac   rsync   ice   tags   aml   常用   没有   编辑   

原文地址:https://www.cnblogs.com/zhengqianfeng/p/13276412.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!