目录
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 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
设置ftp服务,包括以下步骤:
- 安装vsftpd服务
- 在
/etc/vsftpd/vsftpd.conf
文件中,将anonymous_enable
这一行的开头的#
去掉,并设置为NO,即
不允许匿名用户访问 - 启用firewalld的ftp服务,并永久生效
- 重启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
会向/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