使用Ansible中的playbook

这篇具有很好参考价值的文章主要介绍了使用Ansible中的playbook。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.Playbook的功能

2.YAML

3.YAML列表

4.YAML的字典

5.playbook执行命令

6.playbook的核心组件

7.vim 设定技巧

示例


1.Playbook的功能

playbook 是由一个或多个play组成的列表
Playboot 文件使用YAML来写的

2.YAML

#简介#
是一种表达资料序列的格式,类似XML

#特点#
1、可读性好
2、和脚本语言交互性号
3、易于实现
4、适用程序执行流梳理方式
5、可扩展性强  

#语法简介#

缩进严格
大小写敏感
key / value 可以多行书写也可一行书写 一行书写用 隔开
value 可以是个字符串 也可是 list
一个 play 需要包括 name tasks
name 是描述
tasks 是动作
一个 name 只能包含一个 task
扩展名称 yml 或者 yaml

3.YAML列表

[Linux,C++,Java,Python]

- Linux
- C++
- Java
- Python

4.YAML的字典

字典作用:存放键值
name:westos
age:12
jobs:linux
=
{name: "westos", age: "12", jobs: "linux"}

5.playbook执行命令

ansible-playbook xxx.yml

--check|-C         //检测,进行测试,但不会运行
--syntax-check         //check language,检测语法
--list-hosts         //列出hosts
--list-tags         //列出tag
--list-tasks         //列出task
--limit                 //指定执行主机
-v -vv                 //现实过程

使用Ansible中的playbook,ansible

6.playbook的核心组件

name         //可选,建议使用多用于说明
hosts         //受控主机列表

tasks             //任务
                  /用与选择执行部分代码

使用Ansible中的playbook,ansible

7.vim 设定技巧

autocmd FileType yaml setlocal ai ts=2 sw=2 et        //当文件为yaml类型,自动执行命令

setlocal         //设定当前文件
ai                 //自动退格对齐 auto indent
ts                 //tab建长度为2空格 tabstop=2
sw             //缩进长度为2 shiftwidth=2
et                 //把tab键变成空格 expandtab

示例

设置HTTPD服务器

  1. 安装HTTPD服务
  2. /var/www/html目录下创建一个名为index.html的文件,其中内容为www.westos.org
  3. 创建一个名为vhosts.conf的虚拟主机配置文件,包含了3个虚拟主机的信息,分别是默认主机、bbs.westos.orglogin.westos.org,并在文件末尾加上一个<Directory>
  4. /var/virtual/westos.org/login/html目录下创建一个目录
  5. /var/virtual/westos.org/bbs/html目录下创建一个目录
  6. /var/virtual/westos.org/bbs/html目录下创建一个名为index.html的文件,其中内容为bbs.westos.org
  7. /var/virtual/westos.org/login/html目录下创建一个名为index.html的文件,其中内容为login.westos.org
  8. 启用firewalld的http服务,并永久生效
  9. 重启httpd服务,但不在开机时启动该服务
- name: set up httpd
  hosts: host
  tasks:
    - name: install httpd
      yum:
        name: httpd
        state: present

    - name: create index.html
      copy:
        dest: /var/www/html/index.html
        content: www.westos.org

    - name: create virtual host
      copy:
        content: |+
          <VirtualHost _default_:80>
              DocumentRoot /var/www/html
          </VirtualHost>

          <VirtualHost *:80>
              ServerName bbs.westos.org
              DocumentRoot /var/virtual/westos.org/bbs/html
          </VirtualHost>

          <VirtualHost *:80>
              ServerName login.westos.org
              DocumentRoot /var/virtual/westos.org/login/html
          </VirtualHost>
          <Directory "/var/virtual">
            Require all granted
          </Directory>
        dest: /etc/httpd/conf.d/vhosts.conf

    - name: create directory
      file:
        state: directory
        path: /var/virtual/westos.org/login/html

    - name: create dirctory
      file:
        state: directory
        path: /var/virtual/westos.org/bbs/html

    - name: Set index pages for virtual hosts
      copy:
        content: "bbs.westos.org"
        dest: "/var/virtual/westos.org/bbs/html/index.html"

    - name: set index
      copy:
        content: "login.westos.org"
        dest: "/var/virtual/westos.org/login/html/index.html"

    - name: set firewalld
      firewalld:
        service: http
        permanent: yes
        immediate: yes
        state: enabled

    - name: restart
      service:
        name: httpd
        state: restarted
        enabled: no

使用Ansible中的playbook,ansible

设置ftp服务,包括以下步骤:

  1. 安装vsftpd服务
  2. /etc/vsftpd/vsftpd.conf文件中,将anonymous_enable这一行的开头的#去掉,并设置为NO,即不允许匿名用户访问
  3. 启用firewalld的ftp服务,并永久生效
  4. 重启vsftpd服务,但不在开机时启动该服务
- name: setup ftp by playbook
  hosts: host
  tasks:
    - name: install vsftpd
      yum:
        name: vsftpd
        state: present

    - name: enable anonymous to access
      lineinfile:
        path: /etc/vsftpd/vsftpd.conf
        regexp: '^#*(anonymous_enable=)'
        line: 'anonymous_enable=NO'
        state: present

    - name: set firewalld
      firewalld:
        service: http
        permanent: yes
        immediate: yes
        state: enabled

    - name: restart service
      service:
        name: vsftpd
        state: restarted
        enabled: no

使用Ansible中的playbook,ansible

会向/mnt/file文件中插入三行内容,分别是:

         westos
          linux
          lee

如果/mnt/file文件不存在,则会自动创建该文件。如果已经存在,则会在文件中匹配这三行内容,如果不存在则添加这三行到文件中。如果已经存在这三行内容,则不做任何操作。

- name: Edit a file using lineinfile module
  hosts: host
  tasks:
    - name: Insert lines to file
      lineinfile:
        path: /mnt/file
        line: |+
          westos
          linux
          lee
        create: yes

使用Ansible中的playbook,ansible文章来源地址https://www.toymoban.com/news/detail-738441.html

到了这里,关于使用Ansible中的playbook的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【playbook】Ansible的脚本----playbook剧本

    (1) Tasks :任务,即 通过task调用ansible的模板将多个操作组织在一个playbook中运行 (2) Variables :变量 (3) Templates :模板 (4) Handlers :处理器, 当changed状态条件满足时,(notify)触发执行的操作 (5) Roles :角色 在ansible服务器主机,给远程被管理主机制作安装Apach

    2024年02月14日
    浏览(38)
  • 【Ansible】Ansible自动化运维工具之playbook剧本

      简单来说,playbooks是一种简单的配置管理系统与多机器部署系统的基础。与现有的其他系统有不同之处,且非常适合复杂应用的部署。   Playbooks 可用于声明配置,更强大的地方在于,playbooks可以编排有序的去执行过程,甚至做到多组机器间来回有序的执行特别指定的

    2024年02月14日
    浏览(30)
  • ansible的playbook剧本

    (1)Tasks:任务,即通过 task 调用 ansible 的模块将多个操作组织在一个 playbook 中运行 (2)Variables:变量 (3)Templates:模板 (4)Handlers:处理器,当changed状态条件满足时,(notify)触发执行的操作 (5)Roles:角色 ==Ansible在执行完某个任务之后并不会立即去执行对应的han

    2024年02月12日
    浏览(29)
  • Ansible剧本--Playbook

    在ansible中,类似“脚本”的文件被称作“剧本”,英文称为playbook,用于配置、部署和管理被控节点 只需要把模块按照顺序编排在playbook剧本中,ansible就会按照剧本一步一步的执行,最终达到我们需要实现的效果 playbook是由一个或多个\\\'play\\\'组成的列表,当我们在工作中需要不

    2024年01月19日
    浏览(28)
  • Ansible Playbook 常用变量

    以下是 Ansible Playbook 常用变量 ansible_connection : 指定连接类型(如 ssh、winrm) ansible_user : 指定远程用户 ansible_ssh_pass : 指定远程用户密码 ansible_become : 指定是否切换为超级用户 ansible_become_user : 指定切换到的用户 ansible_become_pass : 指定超级用户密码 ansible_host : 指定远程主机的

    2024年02月11日
    浏览(34)
  • Ansible之playbooks剧本

    (1)playbooks是ansible用于配置,部署,和管理被控节点的剧本。 (2)通过playbooks的详细描述,执行其中的tasks,可以让远端主机达到预期的状态。playbooks是由一个或多个”play”组成的列表。 当对一台机器做环境初始化的时候往往需要不止做一件事情,使用playbooks。 (3)通过

    2024年02月09日
    浏览(38)
  • Ansible playbook ----- 剧本

    playbooks 本身由以下各部分组成 (1)Tasks:任务,即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 (2)Variables:变量 (3)Templates:模板 (4)Handlers:处理器,当changed状态条件满足时,(notify)触发执行的操作 (5)Roles:角色 //示例: vim test1.yaml ---    

    2024年02月10日
    浏览(35)
  • [ansible] playbook角色

    Roles又称为角色,playbook被称为剧本。Roles角色是自1.2版本之后引入的新特性,用于层次性、结构化的组织剧本   roles能够根据层次型结构自动装载变量文件、任务集、以及触发的动作等,要使用roles只需要在剧本中使用include命令引入即可 简单的来说,roles就是分别将变量、文

    2024年02月21日
    浏览(34)
  • [ansible] playbook运用

        2.1 基础变量的定义与引用 在yaml文件中,我们可以在初始配置的模块中用var去定义变量的存在,变量的格式为key:value,以此来确定该变量在剧本中的存在   2.2 引用fact信息中的变量   首先我们知道  使用 ansible 组  -m setup   可以收集该组中所有的节点信息 , 所以setup中

    2024年02月20日
    浏览(28)
  • Ansible playbook编写

    Tasks :任务,即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 Variables :变量 Templates :模板 Handlers :处理器,当changed状态条件满足时,(notify)触发执行的操作 Roles :角色

    2024年02月14日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包