目录
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 //现实过程
6.playbook的核心组件
name //可选,建议使用多用于说明
hosts //受控主机列表tasks //任务/用与选择执行部分代码
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服务器
- 安装HTTPD服务
- 在
/var/www/html
目录下创建一个名为index.html
的文件,其中内容为www.westos.org
- 创建一个名为
vhosts.conf
的虚拟主机配置文件,包含了3个虚拟主机的信息,分别是默认主机、bbs.westos.org
、login.westos.org
,并在文件末尾加上一个<Directory>
块 - 在
/var/virtual/westos.org/login/html
目录下创建一个目录 - 在
/var/virtual/westos.org/bbs/html
目录下创建一个目录 - 在
/var/virtual/westos.org/bbs/html
目录下创建一个名为index.html
的文件,其中内容为bbs.westos.org
- 在
/var/virtual/westos.org/login/html
目录下创建一个名为index.html
的文件,其中内容为login.westos.org
- 启用firewalld的http服务,并永久生效
- 重启httpd服务,但不在开机时启动该服务
- name: set up httpdhosts: hosttasks:- name: install httpdyum:name: httpdstate: present- name: create index.htmlcopy:dest: /var/www/html/index.htmlcontent: www.westos.org- name: create virtual hostcopy:content: |+<VirtualHost _default_:80>DocumentRoot /var/www/html</VirtualHost><VirtualHost *:80>ServerName bbs.westos.orgDocumentRoot /var/virtual/westos.org/bbs/html</VirtualHost><VirtualHost *:80>ServerName login.westos.orgDocumentRoot /var/virtual/westos.org/login/html</VirtualHost><Directory "/var/virtual">Require all granted</Directory>dest: /etc/httpd/conf.d/vhosts.conf- name: create directoryfile:state: directorypath: /var/virtual/westos.org/login/html- name: create dirctoryfile:state: directorypath: /var/virtual/westos.org/bbs/html- name: Set index pages for virtual hostscopy:content: "bbs.westos.org"dest: "/var/virtual/westos.org/bbs/html/index.html"- name: set indexcopy:content: "login.westos.org"dest: "/var/virtual/westos.org/login/html/index.html"- name: set firewalldfirewalld:service: httppermanent: yesimmediate: yesstate: enabled- name: restartservice:name: httpdstate: restartedenabled: no
设置ftp服务,包括以下步骤:
- 安装vsftpd服务
- 在
/etc/vsftpd/vsftpd.conf
文件中,将anonymous_enable
这一行的开头的#
去掉,并设置为NO,即
不允许匿名用户访问 - 启用firewalld的ftp服务,并永久生效
- 重启vsftpd服务,但不在开机时启动该服务
- name: setup ftp by playbookhosts: hosttasks:- name: install vsftpdyum:name: vsftpdstate: present- name: enable anonymous to accesslineinfile:path: /etc/vsftpd/vsftpd.confregexp: '^#*(anonymous_enable=)'line: 'anonymous_enable=NO'state: present- name: set firewalldfirewalld:service: httppermanent: yesimmediate: yesstate: enabled- name: restart serviceservice:name: vsftpdstate: restartedenabled: no
会向/mnt/file
文件中插入三行内容,分别是:
westos
linux
lee
如果/mnt/file
文件不存在,则会自动创建该文件。如果已经存在,则会在文件中匹配这三行内容,如果不存在则添加这三行到文件中。如果已经存在这三行内容,则不做任何操作。
- name: Edit a file using lineinfile modulehosts: hosttasks:- name: Insert lines to filelineinfile:path: /mnt/fileline: |+westoslinuxleecreate: yes