Linux架构 Ansible PlayBook剧本实战

Ansible PlayBook剧本实战

playbook介绍

PlayBook即"剧本","兵书"之意,PlayBook是由以下部分组成的

  • play: 定义的是主机的角色。(主角还是配角)

  • task: 定义的是角色具体执行的任务。(角色的台词和动作)

playbook: 由一个或多个play(角色)组成,一个play(角色)可以包含多个task(台词,动作)。

简单理解为: 使用不同的模块完成一件事情

在Ansible中"剧本文件"是以ymlyaml结尾的文件。

在SaltStack中"剧本文件"是以sls结尾的文件。

但是语法,使用的都是yaml语法

  • 缩进: 每一级别的下一级别都要缩进两个空格
  • 短横线: 表示列表类型的数据(同一级别)
  • 冒号: 除了以冒号结尾之外的所有冒号,后面一定要加空格
ansible-playbook 文件名.yml
- hosts: all
  tasks: 
  - name: 创建ljy组
    group:
      name: ljy
      gid: '777'
      state: present

  - name: 创建ljy用户
    user:
      name: ljy
      uid: '777'
      group: '777'
      shell: /sbin/nologin
      create_home: false

部署wordpress作业:

- hosts: all
  tasks:
  - name: 创建www组
    group:
      name: www
      gid: '666'
      state: present
  - name: 创建www用户
    user:
      name: www
      uid: '666'
      group: '666'
      shell: /sbin/nologin
      create_home: false
- hosts: nfs
  tasks:
  - name: 下载nfs-utils
    yum:
      name: nfs-utils
      state: present

  - name: 配置服务端
    copy:
      content: '/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)'
      dest: /etc/exports
  - name: 创建共享目录并授权
    file:
      path: /data
      owner: www
      group: www
      state: directory
  - name: 启动服务并加入开机自启
    service:
      name: nfs
      state: restarted
      enabled: true
- hosts: db01
  tasks:
  - name: 安装MySQL-python,mariadb-server
    yum:
      name: 
        - MySQL-python
        - mariadb-server
  - name: 下发my.cnf文件
    copy:
      src: /root/wordpress/db01/my.cnf
      dest: /etc/my.cnf
  - name: 启动服务
    service:
      name: mariadb
      state: started
      enabled: true
  - name: 创建数据库名
    mysql_db:
      name: wp
      state: present
  - name: 创建数据库用户
    mysql_user:
      name: wp_user
      host: '%'
      password: '123'
      priv: 'wp.*:ALL'
      state: present
  - name: 下发数据库文件
    copy:
      src: /root/wordpress/db01/wp.sql
      dest: /root/
  - name: 导入数据库文件
    mysql_db:
      name: wp
      state: import
      target: /root/wp.sql
- hosts: web_group
  tasks:
  - name: 下发nginx,php文件
    unarchive:
      src: /root/wordpress/web/nginx_php.tgz
      dest: /root/
  - name: 安装nfs-utils
    yum:
      name: nfs-utils
  - name: 安装nginx,php文件
    shell: yum localinstall -y /root/nginx_php/*.rpm
  - name: 下发nginx配置文件
    copy:
      src: /root/wordpress/web/nginx.conf
      dest: /etc/nginx
  - name: 下发网站配置文件  
    copy:
      src: /root/wordpress/web/wp.conf
      dest: /etc/nginx/conf.d
  - name: 下发php配置文件
    copy:
      src: /root/wordpress/web/www.conf
      dest: /etc/php-fpm.d
  - name: 创建站点目录并授权
    file:
      path: /code
      owner: www
      group: www
      state: directory
  - name: 下发网站压缩包
    unarchive:
      src: /root/wordpress/web/wordpress.tgz
      dest: /code
      owner: www
      group: www
  - name: 启动服务
    service:
      name: nginx
      state: started
      enabled: true
  - name: 启动服务 
    service:
      name: php-fpm
      state: started
      enabled: true  
  - name: 挂载nfs
    mount:
      path: /code/wordpress/wp-content/uploads
      src: 172.16.1.31:/data
      fstype: nfs
      state: mounted    
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇