自动化运维
配置
自动化运维使用的工具是ansible可以同时管理多台服务器并且进行分组管理
安装配置
首先安装ansible 然后对要管理的服务器进行面密ssh,然后写配置文件
在家目录下建立ansible文件夹,该文件夹为工作目录ansible的命令应当在工作目录内执行,编辑两个文件
文件1 ansible.cfg
[defaults]
host_key_checking = false   # 不检查主机密钥,=号两边空格可有可无。
inventory = inventory       # 定义主机清单文件为当前目录的inventory
# 创建主机清单文件。写在[]里的是组名,[]下面的是组内的主机名
 
文件2 名称由上面的inventory决定
[webservers]
web[1:2]   # web1和web2的简化写法,表示从1到2
[dbs]
db1
# cluster是组名,自定义的;:children是固定写法,表示下面的组名是cluster的子组。
[cluster:children]
webservers
dbs
# 查看被管理的所有的主机。注意,一定在工作目录下执行命令。
[root@server ansible]# ansible all --list-hosts
  hosts (3):
    web1
    web2
    db1
 
建立完成后即可使用
ansible webservers --list-hosts  # 查看webservers组中所有的主机
 
ansible管理
ansible 主机或组列表 -m 模块 -a "参数"    # -a是可选的
 
ansible进行远程管理的两个方法:
- adhoc临时命令。就是在命令行上执行管理命令。
 - playbook剧本。把管理任务用特定格式写到文件中。
 
无论哪种方式,都是通过模块加参数进行管理。
ansible模块
在命令中又来完成某项功能,使用时将模块名加在-m后即可
# 列出全部可用模块,按空格键向下翻页,按q退出
[root@server ansible]# ansible-doc -l
# 列出模块数量
[root@server ansible]# ansible-doc -l | wc -l  # 如有WARNING提示,可忽略
7214
# 查看包含yum的模块名
[root@server ansible]# ansible-doc -l | grep yum
# 查看yum模块的帮助文档,按空格键向下翻页,按q退出
[root@server ansible]# ansible-doc yum
 
- command模块
 
 ansible默认模块用于执行命令不支持shell、管道、重定向。
- shell模块
 
 与command模块类似,但是支持shell特性,如管道、重定向。
-  
ping
检测是否可以远程管理服务器
 -  
script模块
 
 远程在主机上执行脚本,可以将脚本传送到远程机器的临时目录执行完成后清除。
- file模块
 
 以创建文件、目录、链接等,还可以修改权限、属性等
 常用的选项:
 path:指定文件路径
  owner:设置文件所有者
  group:设置文件所属组
  state:状态。touch表示创建文件,directory表示创建目录,link 表示创建软链接,absent表示删除
  mode:设置权限
  src:source的简写,源
  dest:destination的简写,目标
-  
copy
 用于将文件从控制端拷贝到被控端
 常用选项:
 src:源。控制端的文件路径
 dest:目标。被控制端的文件路径
 content:内容。需要写到文件中的内容
 -  
fetch
 与copy模块相反,copy是上传,fetch是下载
 -  
user
创建用户
 -  
group
创建组
 










