ansible的playbook书写

一、playbook简介

1、playbook与ad-hoc相比,是一种完全不同的运用。
2、playbook是一种简单的配置管理系统与多机器部署系统的基础,且非常适合于复杂应用的部署。
3、playbook是一种简单的配置管理系统与多机器部署系统的基础,且非常适合于复杂应用的部署。
4、使用playbook可以方便的重用这些代码,可以移植到不同的机器上面,playbook才是ansible真正强大之处。

二、playbook的语法

playbook由YMAL语言编写

YAML文件的格式:
1、文件的第一行应该以“---"三个连字符开始,表明YMAL文件的开始
2、在同一行中,#之后的内容表示注释,类似于shell,python
3、YMAL中的列表元素以”-”开头然后紧跟着一个空格,同一个列表中的元素应该保持相同的缩进
例如:

---
# 一个美味水果的列表
- Apple
- Orange
- Mango

4、一个字典是由一个简单的 键: 值 的形式组成(这个冒号后面必须是一个空格)
例如:

---
# 一个职工的记录
name: Example Developer
job: Developer
skill: Elite

5、字典也可以使用缩进形式来表示
例如:

---
# 一个职工的记录
{name:Example Developer,job: Developer, skill: Elite}

三、playbook的核心组件

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

1、主机与用户

---
- hosts: server2  //指定主机组,可以是一个或多个组,用逗号分隔
  remote_user: root  //指定远程主机执行的用户名
  become: yes  //切换用户运行
  become_user: mysql  //指定sudo用户为mysql

2、tasks列表
(1)play的主体部分是task列表,task列表中的各任务按次序逐个在hosts中指定的主机上执行,即在所有主机上完成第一个任务后再开始第二个任务。如果一个host执行task失败,整个tasks都会回滚。
(2)每一个task必须有一个名称name,这样在运行playbook时,从其输出的任务执行信息中可以很好的辨别出是属于哪一个task的。

tasks:
  - name: install apache  //定义任务名

(3)定义一个task,常见的格式:”module: options”
例如:

tasks:
  - name: install apache
    yum: name=httpd state=present

也可以写成以下格式(一般推荐这一种):

tasks:
  - name:  "启动apache服务"
    service:
      name: httpd
      state: started

3、ansible的自带模块中,command模块和shell模块无需使用key=value格式

tasks:
  - name: disable selinux
    command: /sbin/setenforce 0

使用 commandshell 时,我们需要关心返回码信息

tasks:
  - name: run this command and ignore the result
    shell: /usr/bin/somecommand
    ignore_errors: True  //返回值如果不为0,就会报错,tasks停止

四、playbook的执行命令

ansible-playbook ... xxx.yml
--check|-C检测(预演)
--syntax-check检测语法正确性
--list-hosts列出hosts
--list-tags列出tag(标签)
--list-tasks列出task(任务)
--limit指定执行主机
-v -vv显示实现过程

五、vim 设定技巧

YAML文件有严格的缩进,为编写方便,设定vim

vim ~/.vimrc

autocmd FileType yaml setlocal ai ts=2 sw=2 et
setlocal设定当前文件
ai自动退格对齐auto indent
tstab键长度为2空格 tabstop=2
sw缩进长度为2 shiftwidth=2
ettab键变成空格 expandtab

六、基本示例

1、编写playbook实现远程主机apache的安装和自启动:

vim test.yml

---
- name: testplaybook
  hosts: demo
  tasks:
    - name: install apache
      yum:
        name: httpd
        state: present

    - name: start apache
      service:
        name: httpd
        state: started
        enabled: yes
ansible-playbook --syntax-check test.yml  ##语法检测
ansible-playbook -C test.yml  ##检测
ansible-playbook test.yml  ##执行

在这里插入图片描述在这里插入图片描述2、在远程主机上查看apache的状态:
在这里插入图片描述

七、Handlers的使用

  • Handlers:在发生改变时执行的操作

1、复制远程主机的httpd配置文件到ansible目录,修改默认端口为8080

scp server2:/etc/httpd/conf/httpd.conf httpd.conf
vim httpd.conf

42 Listen 8080

2、编写playbook,为远程主机的apache编写发布文件,并修改端口为8080

vim test.yml

---
- name: testplaybook
  hosts: demo
  tasks:
    - name: install apache
      yum:
        name: httpd
        state: present

    - name: start apache
      service:
        name: httpd
        state: started
        enabled: yes

    - name: index.html  ##编写发布文件
      lineinfile:
        path: /var/www/html/index.html
        line: abcdefgh
        create: yes
    - name: httpd.conf  ##修改配置文件
      copy:
        src: httpd.conf
        dest: /etc/httpd/conf/httpd.conf
      notify: restart apache  ##与handlers对应

  handlers:
    - name: restart apache
      service:
        name: httpd
        state: restarted

在这里插入图片描述
3、执行playbook,测试远程主机的8080端口

ansible-playbook --syntax-check test.yml
ansible-playbook  test.yml

在这里插入图片描述

curl 172.25.36.2:8080

在这里插入图片描述
注:如要其他主机可以访问,需要设定server2主机的firewalld允许访问8080端口,添加到playbook中即可。

模块使用参考https://blog.csdn.net/S_K15/article/details/121116467?spm=1001.2014.3001.5502#t13

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 Ansible playbook 迁移 WordPress 文件的基本步骤: 1. 在目标服务器上安装 WordPress:使用 Ansible playbook 在目标服务器上安装 WordPress,包括 Apache、PHP、MySQL 和 WordPress 本身。 2. 在源服务器上备份 WordPress 文件:使用 Ansible playbook 在源服务器上备份 WordPress 文件,并将它们打包到一个 tar.gz 文件中。 3. 将备份文件传输到目标服务器:使用 Ansible playbook 将备份文件传输到目标服务器。 4. 在目标服务器上解压备份文件:使用 Ansible playbook 在目标服务器上解压备份文件,并将其放置在正确的目录中。 5. 修改 wp-config.php 文件:使用 Ansible playbook 修改目标服务器上的 wp-config.php 文件,以便它能够连接到正确的 MySQL 数据库。 6. 启动 Apache 和 MySQL:使用 Ansible playbook 启动 Apache 和 MySQL 服务,以便 WordPress 可以正常运行。 7. 验证 WordPress 是否正确迁移:使用 Ansible playbook 验证 WordPress 是否正确迁移,包括查看站点是否能够正常访问、登录 WordPress 是否正常等。 注意事项: - 在备份 WordPress 文件时,确保备份的 WordPress 版本与目标服务器上安装的 WordPress 版本相同或兼容。 - 在修改 wp-config.php 文件时,确保数据库连接信息正确,并确保文件权限设置正确。 - 在验证 WordPress 是否正确迁移时,可以使用 Ansible playbook 中的一些模块来检查站点是否正常运行,例如使用 curl 模块检查站点是否能够正常访问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值