正文
cron模块 :
管理计划任务条目
用法:
-a ""
minute=
hour=
day=
month=
weekday=
job=
name=
user=
state={present|absent}
示例:创建一个同步时间的计划任务,每5分钟同步一下服务器的时间
验证任务
示例:删除计划任务
验证
hostname模块:
管理主机名
用法:
name=
示例:修改主机名
yum模块:
使用yum命令完成程序包管理
用法:
-a ""
(1) name= state={present|latest}
(2) name= state=absent
示例:安装指定包
此实验,首先,确定主机的yum源是可用的,否则实验会失败
安装samba包
验证
删除samba安装包
已经没有安装的字眼了
service模块:
服务管理
用法:
-a ""
name=
state=
started
stopped
restarted
enabled=
runlevel=
示例:开启主机的httpd服务
首先我们确认httpd服务是关闭的
开启httpd服务,并且设置为开机启动
验证,80端口已经开启
group模块:增加或删除组
用法:
-a ""
name=
state=
system=
gid=
示例:添加一个组
验证
删除组
验证
user模块:
用户管理
使用格式:
name= : 创建的用户名
state= : present新增,absent删除
force= : 删除用户的时候删除家目录
system= : 创建系统用户
uid= : 指定UID
shell= : 指定shell
home= : 指定用户家目录
示例:增加一个系统用户
验证
删除用户
setup模块:
收集主机里面的各种信息
示例:收集所有主机的信息
YAML
:
一种数据序列化工具的语言格式
YAML is a data serialization format designed for human readability and interaction with scripting languages.
数据结构:
key:value
- item1
- item2
- item3
例如{name:jerry, age:21}
PlayBook
核心元素:
Tasks:任务,由模块定义的操作的列表;
Variables:变量
Templates:模板,即使用了模板语法的文本文件;
Handlers:由特定条件触发的Tasks;
Roles:角色;
playbook的基础组件:
Hosts:运行指定任务的目标主机;
remote_user:在远程主机以哪个用户身份执行;
sudo_user:非管理员需要拥有sudo权限;
tasks:任务列表
模块,模块参数:
格式:
(1) action: module arguments
(2) module: arguments
运行playbook,使用ansible-playbook命令
(1) 检测语法
ansible-playbook --syntax-check /path/to/playbook.yaml
(2) 测试运行
ansible-playbook -C /path/to/playbook.yaml
--list-hosts
-list-tasks
--list-tags
(3) 运行
ansible-playbook /path/to/playbook.yaml
-t TAGS, --tags=TAGS
--skip-tags=SKIP_TAGS
--start-at-task=START_AT
示例1:定义一个playbook任务来新增用户和组
定义一个yaml的模板
查查语法有没有错误,没有提示即表示语法应该没有问题。
测试运行看看,-C表示仅测试跑一边,但是不会实际操作
也可以单独测试某些特定的选项
查看仅影响的主机
查看运行哪些任务
查看哪个任务打标了,这里并没有任何任务打标记,后面再演示
以上没有错误,开始正式运行该任务