1.什么是Ansible
Ansible时一个IT自动化的配置管理工具,可以通过一个命令行完成一系列的操作,能减少重复性的工作,提高工作的效率。
2.Ansible可以完成那些功能
可以在同一时刻对N多台主机同时进行命令,
可以批量的配置软件服务,
实现软件的开发功能,
可以编排高级的IT任务用来描绘一个IT架构
3.Ansible特点
容易学习,无代理模式
操作灵活,提供了丰富的功能
简单易用,Ansible一个命令可以完成很多事情
安全可靠,Ansible使用了SSH协议进行通讯,即稳定也安全
移植性高,可以将写好的playbook拷贝至任意机器进行执行
4.Ansible配置文件优先级
第一优先级:export定义的变量ANSIBLE_CONFIG
第二优先级:当前项目目录中ansible.cfg(使用最多)
第三优先级:当前执行用户的家目录.ansible.cfg
第四优先级:/etc/ansible/ansible.cfg
5.ansible inventory主机清单?
1.基于IP地址+密码的方式
2.基于密钥连接,需要先创建公钥和私钥,并下发公钥至被控端
1.生成密钥
2.基于密钥连接
3.配置主机
3.查看主机组
6.Ansible ad-Hoc单条命令
commadn #执行命令 默认 不支持管道
shell #执行命令 支持管道
yum_reposity #yum仓库配置
yum #yum安装软件
get_url #和linux的wget一致
copy #拷贝配置文件
service|systemd #启动服务
user #用户
group #用户组
file #创建目录 创建文件 递归授权
mount #挂载
cron #定时任务
firewalld #防火墙
selinux #selinux
1.command(不支持管道)
2.shell(支持管道)
3.yum
stste:
present 安装
absent 卸载
latest 最新
enablerepo 指定使用那个仓库
disablerepo 排除使用那个仓库
1.安装最新的httpd服务
2.移除httpd服务
3.安装httpd指定从那个仓库安装
4.通过URL方式进行安装
5.通过软件包安装
4.copy
src 本地路径,可以是相对,可以是绝对
dest 目标位置
owner 属主
group 属组
mode 权限
backup 备份
将本地的文件拷贝过去,属主属组皆为root,权限为644
将本地的文件拷贝过去,属主属组皆为root,权限为644,并设置备份
5.service|systemd
state
started #启动
stopped #停止
restarted #重启
reloaded #重载
enable #是否开机自启
yes #是
no #否
重启nginx
6.file
path #路径
state
touch #创建文件
directory #创建目录
owner #属主
group #属组
mode #权限
准备站点
准备站点代码
7.user group
group
创建用户组www,gid为666
user
name #名称
uid #uid
group #组名或gid
create_home #是否创建家目录
system #是否作为系统组
shell #指定登录shell
state
present
absent
remove
groups
append
password
创建用户www,uid和gid为666,不创建家目录,不允许shell登录
#正常用户 oldyan 1000 1000 /sbin/bash
#移除oldyan用户,并删除家目录所有内容。
8.mount
#提前准备好nfs服务端
#用管理端操作被控端,让被控端挂载nfs存储数据
present #写入/etc/fstab
absent #卸载/etc/fstab
mounted #临时挂载
unmounted #卸载当前挂载
#挂载过程中,如果目录不存在,则会创建目录
挂载目录
卸载目录
9.cron
minute 分
hour 时
day 日
month 月
week 周
job #
删除
10.selinux
11.firewalld
启动防火墙
针对服务
针对端口
针对source来源和rich_rule
state
enabled 加入
disabled 去除
zone 区域
drop 这个ip拒绝登录,其他都允许
accept 这个ip允许登录,其他都拒绝
permanent 是否永久
yes 是
no 否
除了10.0.0.1/32,其他都SSH都拒绝
拒绝10.0.0.1/32,其他SSH都允许
将上面那条规则去除
12.get_url=wget
url 要下载的链接
dest 指定下载到的目录
mode 权限
13.yum_repository
name 仓库名字
description 描述
baseurl 链接地址
gpgcheck 是否开启
14.register
将shell里的结果输入到变量里
15.debug
用msg将变量里的内容输出出来
15.unarchive
16.authorized_key
批量推密钥