------------恢复内容开始------------

1.ansible的概念

1.Ansible简介 目标

Ansible 是一个配置管理和应用部署工具,即在管理主机上操作一些命令就能在节点主机上进行相应的动作。比如拷贝


Ansible 的目标有如下:

自动化部署应用

自动化管理配置

自动化的持续交付

自动化的(AWS)云服务管理

2.Ansible作用

ansible帮助完成一些批量任务,或者完成一些需要经常重复的工作

比如:同时在100台服务器上安装nginx服务,并在安装后启动它们。

比如:将某个文件一次性拷贝到100台服务器上。

比如:每当有新服务器加入工作环境时,你都要为新服务器部署某个服务,也就是说你需要经常重复的完成相同的工作。

这些场景中我们都可以使用到ansible。

3.Ansible特性

模块化:调用特定的模块,完成特定任务

有Paramiko,PyYAML,Jinja2(模板语言)三个关键模块

支持自定义模块

基于Python语言实现

部署简单,基于python和SSH(默认已安装),agentless

安全,基于OpenSSH

支持playbook编排任务,YAML格式

幂等性:一个任务执行1遍和执行n遍效果一样,不因重复执行带来意外情况

4.Ansible架构  组成部分

 

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块

 

 

 


Ansible主要组成 部分功能说明


ANSIBLE:

组合INVENTORY、 API、 MODULES、PLUGINS的绿框,可以理解为是ansible命令工具,其为核心执行工具v

INVENTORY:


Ansible管理主机的清单/etc/anaible/hosts

MODULES:Ansible执行命令的功能模块,多数为内置的核心模块,也可自定义,ansible-doc –l 可查看模块

PLUGINS:模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等,该功能不常用

API:供第三方程序调用的应用程序编程接口v

PLAYBOOKS:任务剧本(任务集),编排定义Ansible任务集的配置文件,将多个任务定义在剧本中,由Ansible顺序依次执行,通常是JSON格式的YML文件。


ansible工作原理


管理主机从


2.Ansible案例


1.准备工作 配置yum源  安装absible  配置文件 默认即可

1.增加 yum 源

cd /etc/yum.repos.d

ls

mkdir bak

mv *  bak

vim bases.repo

 

ansible脚本备份文件夹参数模块 ansible 备份_nginx_02

 

 

 

 

yum install -y epel-release

rpm -ql epel-release

 

ansible脚本备份文件夹参数模块 ansible 备份_vim_03

 

 

 


2.安装ansible

yum install -y ansible

ansible --version

 

ansible脚本备份文件夹参数模块 ansible 备份_nginx_04

 

 

 



3.Ansible配置文件默认即可

vim /etc/ansible/ansible.cfg

 

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块_05

 

 

 


2配置主机文件/etc/ansible/hosts 增加客户端主机  增加主机组


vim /etc/ansible/hosts

增加这  被监控的主机


192.168.10.20

 

增加 主机组

[webservers]

192.168.10.20

 

ansible脚本备份文件夹参数模块 ansible 备份_vim_06

 

 

 


注意  如果web主机多为连续的    可以这样写

 

ansible脚本备份文件夹参数模块 ansible 备份_vim_07

 

 

 

 

 

3.实现ssh无秘钥登录

ssh-keygen回车即可

ssh-copy-id 192.168.10.20

ssh 192.168.10.20

 

ansible脚本备份文件夹参数模块 ansible 备份_nginx_08

 

 

 

ansible脚本备份文件夹参数模块 ansible 备份_Ansible_09

 

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块_10

 

ansible 192.168.10.20 -a 'date'

 

ansible脚本备份文件夹参数模块 ansible 备份_nginx_11

 

 

 


ad-hoc命令部分

ansible host-pattern [-f forks] [-m module] [-a args]


-a 'Arguments',    --args='Arguments' 命令行参数
-m NAME,     --module -name=NAME 执行模块的名字默认使用command 模块,如果执行单一命令可以不用



4.1.Copy模块 常用模块

从本地copy文件分发到目录主机路径

参数说明:

src= 源文件路径 source

dest= 目标路径  destination

注意src= 路径后面带/ 表示带里面的所有内容复制到目标目录下,不带/是目录递归复制过去

content=自行填充的文件内容

owner 属主

group 属组

Mode权限


在服务端10.10上  拷贝文件

ansible all -m copy -a "src=/etc/passwd dest=/tmp/passwd mode=600"

 

ansible脚本备份文件夹参数模块 ansible 备份_Ansible_12

 


 

 

 

10.20查看

 

ansible脚本备份文件夹参数模块 ansible 备份_Ansible_13


4.2.fetch模块

从远程主机10.10 拉取文件到本地

需指定src和dest,dest只要指定一个接收目录,默认会在后面加上远程主机及src的路径


10.10   拉取  查看

ansible all -m fetch -a "src=/tmp/passwd dest=/tmp"

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块_14

 


 

ansible脚本备份文件夹参数模块 ansible 备份_Ansible_15

 

 

ansible脚本备份文件夹参数模块 ansible 备份_nginx_16

 

 


4.3.command模块

在远程主机上执行命令,属于裸执行;不进行shell解析;

ansible all -m command -a "ip a"

 

ansible脚本备份文件夹参数模块 ansible 备份_nginx_17

 


 

 

 

ansible all -m command -a "ip a| grep ens33"查看10.20主机的ens33网卡会报错

ansible all -m command -a "ip a|grep lo"

 

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块_18

 


 

 


会报错是因为command模块不是shell解析属于裸执行导致的

为了能达成以上类似shell中的解析,ansible有一个shell模块;

 

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块_19

 


 

 

由下面

 

4.4.shell模块

由于commnad只能执行裸命令(即系统环境中有支持的命令),至于管道之类的功能不支持,

shell模块可以做到


ansible all -m shell -a "ip a|grep lo"

 

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块_20

 


 

 



4.5.file模块

设置文件属性(创建文件)

文件属性文件名 文件大小  属主 属组  时间戳  权限 特殊位


文件类型

文件属性

文件类型

-

常规文件,即file

d

目录文件

b

block device 即块设备文件,如硬盘;支持以block为单位进行随机访问

c

character device 即字符设备文件,如键盘支持以character为单位进行线性访问

l

symbolic link 即符号链接文件,又称软链接文件

p

pipe 即命名管道文件

s

socket 即套接字文件,用于实现两个进程进行通信


常用参数:

path目标路径

state directory为目录,link为软件链接

group 目录 属组

owner 属主等,   其他参数通过ansible-doc -s file 获取


10.10创建目录

ansible all -m file -a "path=/tmp/xld state=directory"

 

ansible脚本备份文件夹参数模块 ansible 备份_nginx_21

 


 

 


10.10服务端  创建软件链接

ansible all -m file -a "src=/etc/fstab dest=/tmp/fstab.link state=link"

 

ansible脚本备份文件夹参数模块 ansible 备份_nginx_22

 


 

 

 

10.20查看

 

ansible脚本备份文件夹参数模块 ansible 备份_nginx_23

 


 

 



4.6.user模块:可以快速在被管控主机上批量添加用户

用户的7个字段

1.用户名

2.密码标识列

3.用户id

4.组id

5.备注

6.家目录

7.shell环境

Useradd增加用户

Usermod更改用户的属性 uid等  -G  -g


常用参数:

state=present   创建用户

home=     来指定用户家目录路径

system=true   创建系统用户

uid=  来指定用户uid

shell=     指定用户的默认shell


state=present创建用户

start=absent  删除用户

remove=true  删除用户家目录


创建用户

ansible all -m user -a 'name=xld state=present'

 

ansible脚本备份文件夹参数模块 ansible 备份_Ansible_24

 


 

 

删除用户:

ansible all -m user -a 'name=xld state=absent'

 

ansible脚本备份文件夹参数模块 ansible 备份_vim_25

 


 

 


删除家目录

ansible all -m user -a 'name=xld remove=true'

 

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块_26

 


 

 


10.20 验证

cat /etc/passwd

tail -l /etc/passwd

 

ansible脚本备份文件夹参数模块 ansible 备份_Ansible_27

 


 

ansible脚本备份文件夹参数模块 ansible 备份_Ansible_28

 

 

ansible脚本备份文件夹参数模块 ansible 备份_Ansible_29

 

 

4.7.group模块

和user类似,用于创建系统组

示例:


ansible all -m group -a  'name=go state=present gid=5001 system=true'

system=true   创建一个系统组

如果要删除该组,只需要将state=present改成state=absent就可以了

 

ansible脚本备份文件夹参数模块 ansible 备份_Ansible_30

 


 


10.20查看

tail -l /etc/group

 

ansible脚本备份文件夹参数模块 ansible 备份_Ansible_31

 


 

 


10.10删除组

ansible all -m group -a  'name=go state=absent gid=5001 system=true'

 

ansible脚本备份文件夹参数模块 ansible 备份_nginx_32

 


 

 


10.20查看,没有了

 

ansible脚本备份文件夹参数模块 ansible 备份_nginx_33

 


 

 

4.8.yum模块   yum安装软件包的模块

常用参数说明:

enablerepo,disablerepo表示启用与禁用某repo库

name 安装包名

state =present或者installed表示安装,

state =absentor或者removed 表示删除


示例:通过安装epel扩展源并安装nginx

ansible all -m yum -a "name=epel-release state=installed"

ansible all -m yum -a "name=nginx state=installed"


ansible all  -a "systemctl start nginx"

ansible all  -a "systemctl status nginx"

 

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块_34

 


 

ansible脚本备份文件夹参数模块 ansible 备份_Ansible_35

 

 

ansible脚本备份文件夹参数模块 ansible 备份_vim_36

 

 

 

10.20查看

systemctl status nginx

 

ansible脚本备份文件夹参数模块 ansible 备份_Ansible_37

 


 

 



4.9.service模块 服务管理模块

常用参数:

name:服务名

state:服务状态

enabled: 是否开机启动true|false


ansible all -m service -a "name=nginx state=stopped enabled=true"

ansible all -m service -a "name=nginx state=started enabled=true"

 

ansible脚本备份文件夹参数模块 ansible 备份_vim_38

 


 

 

 

在10.10上查看10.20的nginx服务状态

ansible all -m command  -a "systemctl status nginx"

 

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块_39

 


 

 

 

在10.20上查看

 

ansible脚本备份文件夹参数模块 ansible 备份_nginx_40

 


 

 

10.10启动

 

ansible脚本备份文件夹参数模块 ansible 备份_nginx_41

 


 

 

 

10.20查看

 

ansible脚本备份文件夹参数模块 ansible 备份_Ansible_42

 


 

 


4.10.script模块  把本地的脚本传到远端执行;前提是到远端可以执行


在10.10服务端  写一个测试 脚本


vim test.sh

#!/bin/bash

echo "hello world" >/tmp/ansible.txt

 

ansible脚本备份文件夹参数模块 ansible 备份_Ansible_43

 


 

 


ansible all -m script -a "/root/test.sh"

或者

ansible webservers -m script -a "/root/test.sh"

 

ansible脚本备份文件夹参数模块 ansible 备份_vim_44

 


 

ansible脚本备份文件夹参数模块 ansible 备份_nginx_45

 

  

10.20验证

 

ansible脚本备份文件夹参数模块 ansible 备份_nginx_46

 


 

 


3.Playbook工具

playbook简介:

Playbooks 与 adhoc 相比,是一种完全不同的运用 ansible 的方式,是非常强大的。


playbooks 是一种简单的配置管理系统与多机器部署系统的基础.与现有的其他系统有不同之处,且非常适合于复杂应用的部署。

安装部署一个httpd服务,需要多个模块(一个模块也可以称之为task)提供功能来完成。而playbook就是组织多个task的容器,他的实质就是一个文件有着特定的组织格式,它采用的语法格式是YAML(Yet Another Markup Language)。YAML语法能够简单的表示散列表,字典等数据结构。


YAML基本语法


列表:每一个列表成员前面都要有一个短横线和一个空格


fruits:

- Apple

- Orange

- Strawberry

- Mango


列表和字典可以混合使用

-  martin:

name: Martin D'vloper

job: Developer

skills:

- python

- perl

- pascal


注意  冒号 和 小横杠   后面要有空格


Playbooks 可用于声明配置,可以编排有序的执行过程,甚至于做到在多组机器间,回有序的执行特别指定的步骤.并且可以同步或异步的发起任务


我们使用而使用


‘plays’ 好似音符,playbook 好似由 ‘plays’ 构成的曲谱,通过 playbook,可以编排步骤进行多机器的部署,比如在 webservers 组的所有机器上运行一定的步骤, 然后在 database server 组运行一些步骤,最后回到 webservers 组,再运行一些步骤,诸如此类。



1.playbook的核心元素

hosts : playbook配置文件作用的主机

remote_user:在远程主机上执行任务的用户

tasks: 任务列表

variables: 变量

templates:包含模板语法的文本 文件,使用jinja2语法。

handlers :由特定条件触发的任务

roles :用于层次性、结构化地组织playbook。

roles 能够根据层次型结构自动装载变量文件、tasks以及handlers等


整个playbook是以task为中心表明要执行的任务

hosts和remote_user表明在哪些远程主机以何种身份执行。

src=


templates

它是一个模块功能,与copy不同的是它的文本文件采用了jinga2语法,template只能在palybook中使用。(使用了Jinjia2格式作为文件模版,进行文档内变量的替换的模块。相当于copy)


2.playbook运行方式

ansible-playbook --check 只检测   可能会发生的改变,但不真执行操作

ansible-playbook --list-hosts 列出  运行任务的主机

ansible-playbook --syntax-check playbook.yaml 语法检测

ansible-playbook -t TAGS_NAME playbook.yaml 只执行TAGS_NAME任务

ansible-playbook yam文件.yaml 运行


3.通过playbook安装管理httpd服务-案例version1

yum install -y httpd

grep ^Listen /etc/httpd/conf/httpd.conf 查看监听端口

 

ansible脚本备份文件夹参数模块 ansible 备份_vim_47

 


 

 


vim httpd01.yml


- hosts: webservers

remote_user: root

tasks:

- name: install httpd

yum: name=httpd state=present

- name: install configure file

copy: src=/etc/httpd/conf/httpd.conf dest=/etc/httpd/conf/

- name: start httpd service

service: name=httpd state=started

 

ansible脚本备份文件夹参数模块 ansible 备份_vim_48

 


 

 



检测测试playbook

ansible-playbook --check httpd01.yml

 

ansible脚本备份文件夹参数模块 ansible 备份_Ansible_49

 


 

 


注意

gather facts是默认执行,用来获取远程主机的信息,网络信息等。

TASK [install httpd]   创建task时,name后面的字符串

changed: [192.168.137.106]  changed表明此安装包没有安装,会执行安装命令

PLAY RECAP 这是总结


运行playbook

ansible-playbook httpd01.yml

 

ansible脚本备份文件夹参数模块 ansible 备份_nginx_50

 


 

 

 

 

验证10.10 查看服务启动时的端口

ansible webservers -m shell -a "ss -lant |grep 80"

 

ansible脚本备份文件夹参数模块 ansible 备份_vim_51

 


 

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块_52

 

 

 



4.安装部署httpd服务-案例version2


copy命令拷贝配置文件时,无法对配置文件进行修改,不够灵活。



案例  使用template拷贝文件,并使用主机变量设置httpd端口号


vim /etc/ansible/hosts

 

ansible脚本备份文件夹参数模块 ansible 备份_vim_53

 


 

 

 

egrep -v "^$|^#" /etc/ansible/hosts

 

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块_54

 


 

 

 

cp /etc/httpd/conf/httpd.conf  /etc/httpd/conf/httpd.conf.j2

vim /etc/httpd/conf/httpd.conf.j2

 

ansible脚本备份文件夹参数模块 ansible 备份_nginx_55

 


 

 

 

cd /etc/httpd/conf/

grep ^Listen httpd.conf.j2

 

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块_56

 


 

 


vim httpd02.yml



- hosts: webservers

remote_user: root

tasks:

- name: install httpd

yum: name=httpd state=present

- name: install configure file

template: src=/etc/httpd/conf/httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf

- name: start httpd service

service: name=httpd state=started

ansible脚本备份文件夹参数模块 ansible 备份_vim_57

 


 



注意 template 为源



检查playbook

ansible-playbook --check httpd02.yml

 

ansible脚本备份文件夹参数模块 ansible 备份_nginx_58

 


 

 


运行playbook

ansible-playbook httpd02.yml

ansible webservers -m shell -a "ss  -ltn|grep :80"

 

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块_59

 


 

 



由此可以看出,playbook中只将文件拷贝过去了,并没有重启服务,所以我们可以看到端口监听的依然是80而不是8088。在配置文件  增加 修改时触发一个任务,这就是handlers的用法,重新修改playbook文件。


重新修改YAML文件


vi httpd02.yml


- hosts: webservers

remote_user: root

tasks:

- name: install httpd

yum: name=httpd state=present

- name: install configure file

notify: restart httpd service

template: src=/etc/httpd/conf/httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf

- name: start httpd service

service: name=httpd state=started

handlers:

- name: restart httpd service

service: name=httpd state=restarted

 

ansible脚本备份文件夹参数模块 ansible 备份_vim_60

 


 

 



执行之前,需要把10主机上的Listen端口改为8088

因为刚执行的,虽然没重启,但是文件复制过去了。

增加handlers重启服务即可

 

ansible-playbook --check httpd02.yml

ansible-playbook httpd02.yml

 

ansible脚本备份文件夹参数模块 ansible 备份_Ansible_61

 


 

 

 

ansible webservers -m shell -a "ss -ltn |grep :80"

 

ansible脚本备份文件夹参数模块 ansible 备份_vim_62

 


 

 

注意

TASK [install configure file]

RUNNING HANDLER [restart httpd service]这两个是执行的任务


此playbook执行了两个任务,一个是拷贝文件,一个是重启服务。

此时监听的端口不是80 而是8088


修改配置文件并重启服务, 这是一个非常常见的操作

它只需执行两个task   但我们把所有的任务都执行一遍,这会降低效率, 可以使用tags来指定执行那个任务


5.案例 version03 指定执行任务

注意,修改了端口号

vim /etc/ansible/hosts

 

ansible脚本备份文件夹参数模块 ansible 备份_vim_63

 


 

 


egrep -v '(^$|^#)' /etc/ansible/hosts

 

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块_64

 


 

 



修改playbook文件


vim httpd03.yml


- hosts: webservers

remote_user: root

tasks:

- name: install httpd

yum: name=httpd state=present

- name: install configure file

notify: restart httpd service

tags: reinstall configure file

template: src=/etc/httpd/conf/httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf

- name: start httpd service

service: name=httpd state=started

handlers:

- name: restart httpd service

service: name=httpd state=restarted

 

ansible脚本备份文件夹参数模块 ansible 备份_Ansible_65

 


 

 

 

 

检测

ansible-playbook --check httpd03.yml

 

ansible脚本备份文件夹参数模块 ansible 备份_vim_66

 


 

 

 

执行playbook

ansible-playbook --tags="reinstall configure file" httpd03.yml

 

ansible脚本备份文件夹参数模块 ansible 备份_vim_67

 


 

 

 

ansible webservers -m shell -a "ss -ltn |grep :80"

 

ansible脚本备份文件夹参数模块 ansible 备份_Ansible_68

 


 

 

playbook只执行了拷贝文件,以及拷贝文件触发的重启服务事件。

服务开启的是8080端口。


4.Ansible之roles使用

1.Roles作用

主要作用是复用playbook,例如我们安装软件会安装时间同步服务,那么每个playbook都要编写ntp task。可将ntp task写好,用的时候调用即可ansible中将其组织成role,他有着固定的组织格式。以便playbook调用。


2.relos介绍


特定的层级目录结构   进行组织形式tasks、variables、handlers、templates、files等;

相当于函数的调用把各个功能切割成片段来执行


3.1.案例  层级目录结构

role存放的路径在配置文件/etc/ansible/ansible.cfg中定义

roles_path = /etc/ansible/roles


在playbook中调用role

第一种:

- hosts: HOSTS

remote_user: root

roles:

- ROLE_NAME1

- ROLE_NAME2


第二种:除了字典第一个元素指明调用的role,后面是传递给role的变量

- hosts: HOSTS

remote_user: root

roles:

- { role: ROLE_NAME1, VARIABLE1: VALUE1, ...}


3.2. 以远程安装httpd为例,使用role示例

1). 目录结构:

httpd是playbook调用时role的名称

http.conf.c6.j2是httpd配置文件


cd /etc/ansible/roles/

mkdir httpd

cd httpd/

mkdir tasks templates handlers

yum -y install tree

tree

 

ansible脚本备份文件夹参数模块 ansible 备份_vim_69

 


 

ansible脚本备份文件夹参数模块 ansible 备份_nginx_70

 

 

 

 

 

role_name/:我们定义的role的名字

file/:     用于存放copy或script等模块调用的函数文件

tasks/:用于定义各种task任务此目录一定要有main.yml

handlers/:用于定义各种handlers触发器此目录一定要有main.yml;

vars/:用于定义variables,此目录一定要有main.yml;

templates/:存储由template模块调用的模板文本;jinja2语法格式  {{  }}

default/:此目录中至少应该有一个名为main.yml的文件,用于设定默认变量;


1). 编写tasks文件

cd /etc/ansible/roles/httpd/tasks


vim main.yml


- name: install httpd package

yum: name=httpd state=present

- name: install configure file

template: src=/etc/ansible/roles/httpd/templates/httpd.conf.c6.j2 dest=/etc/httpd/conf/httpd.conf

notify: restart httpd service

- name: start httpd service

service: name=httpd state=started enabled=true

 

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块_71

 


 

 


此处不用写task,执行时是在tasks目录下role组件能够自动识别



2). 编写handlers文件

cd /etc/ansible/roles/httpd/handlers


vim main.yml


- name: restart httpd service

service: name=httpd state=restarted

 

ansible脚本备份文件夹参数模块 ansible 备份_vim_72

 

 

 

 

3). 复制  使用 httpd的模板文件

注意http.conf.c6.j2是httpd配置文件


cd /etc/ansible/roles/httpd/templates

cp /etc/httpd/conf/httpd.conf.j2  ./

mv httpd.conf.j2  httpd.conf.c6.j2

vim httpd.conf.c6.j2

 

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块_73

 


 

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块_74

 

 

 

rep -C 3 ^Listen httpd.conf.c6.j2



使用httpd_port变量设置httpd_port端口号,此变量来自vars目录下申明的变量


4). 编写变量vars


cd /etc/ansible/roles/httpd/vars


vim main.yml


httpd_port: 8088

 

ansible脚本备份文件夹参数模块 ansible 备份_vim_75

 


 

 


cd /etc/ansible/roles/

tree

 

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块_76

 


 

 

5). 编写 playbook文件   主 yml文件

vim httpd_role.yml


- hosts: webservers

remote_user: root

roles:

- { role: httpd }

 

ansible脚本备份文件夹参数模块 ansible 备份_nginx_77

 


 

 


6). 测试playbook文件

ansible-playbook --check httpd_role.yml   检测

 

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块_78

 


 

 


ansible-playbook httpd_role.yml    执行

 

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块_79

 


 

 

 

ansible webservers -m shell -a "ss -tnlp|grep :80"

可以看到httpd监听的端口为8088

 

ansible脚本备份文件夹参数模块 ansible 备份_vim_80

 


 

 

5.简答 & 实验


5.1简答题

Ansible常用哪些模块?

Ansible的host文件如何编写?

Ansible 的playbook文件有那几部分构成?

5.2 实验题x

Ansible安装

Ansible ad-hoc常用命令

编写playbook,实现批量部署nginx

基于role和template实现自动化部署httpd


 

ansible脚本备份文件夹参数模块 ansible 备份_ansible脚本备份文件夹参数模块_81

 


 

 




生活是一种感受也是一种积累