Ansible自动化运维工具(二)

目录

(6)copy模块

(7)file模块

​编辑​编辑(8)hostname模块

(9)ping模块 

(10)yum 模块 

(11)service/system模块

​编辑

​编辑

(12)script模块

​编辑

(13)setup模块

(1)inventory 中的变量含义


(6)copy模块

用于复制指定主机文件到远程主机的

ansible-doc -s copy

常用的参数:

参数 注释
dest 指出复制文件的目标及位置,使用绝对路径,如果是源目录,指目标也要是目录,如果目标文件已经存在会覆盖原有的内
src 指出源文件的路径,可以使用相对路径或绝对路径,支持直接指定目录,如果源是目录则目标也要是目录
mode 指出复制时,目标文件的权限
owner 指出复制时,月标文件的属主
group 指出复制时,目标文件的属组
content 指出复制到目标主机上的内容,不能与src一起使用
#将etc/fstab下的复制到opt/fstab.bak给予root属主、权限640
ansible dbservers -m copy -a 'src=/etc/fstab dest=/opt/fstab.bak owner=root mode=640'

Ansible自动化运维工具(二)_第1张图片

#详细查看opt下的文件
ansible dbservers -a 'ls -l /opt'

 Ansible自动化运维工具(二)_第2张图片

#查看新创建的文件内容
ansible dbservers -a 'cat /opt/fstab.bak'

Ansible自动化运维工具(二)_第3张图片

#将helloworld写入/opt/hello.txt文件中
ansible dbservers -m copy -a 'content="helloworld" de
st=/opt/hello.txt'

Ansible自动化运维工具(二)_第4张图片

#查看写入的文件
ansible dbservers -a 'cat /opt/hello.txt'

(7)file模块

设置文件属性

#查看file模块下的功能,按q退出
ansible-doc -s file

举例:

#修改文件的属主属组权限等
ansible dbservers -m file -a 'owner=test01 group=mysql mode=644 path=/opt/fstab.bak'
#查看修改后的信息
ansible dbservers -m command -a 'chdir=/opt ls -lh ./'

Ansible自动化运维工具(二)_第5张图片Ansible自动化运维工具(二)_第6张图片

#设置/opt/fstab.link为/opt/fstab.bak的链接文件
ansible dbservers -m file -a 'path=/opt/fstab.link src=/opt/fstab.bak state=link'
#查看修改后的信息
ansible dbservers -m command -a 'chdir=/opt ls -lh ./'

Ansible自动化运维工具(二)_第7张图片Ansible自动化运维工具(二)_第8张图片

#创建一个文件
ansible dbservers -m file -a "path=/opt/abc.txt state=touch"
#查看修改后的信息
ansible dbservers -m command -a 'chdir=/opt ls -lh ./'

Ansible自动化运维工具(二)_第9张图片Ansible自动化运维工具(二)_第10张图片

#删除一个文件
ansible dbservers -m file -a "path=/opt/abc.txt state=absent"
#查看删除后的信息
ansible dbservers -m command -a 'chdir=/opt ls -lh ./'

Ansible自动化运维工具(二)_第11张图片Ansible自动化运维工具(二)_第12张图片(8)hostname模块

用于管理远程主机上的主机名

ansible dbservers -m hostname -a "name=mysql01"

Ansible自动化运维工具(二)_第13张图片

(9)ping模块 

检测远程主机的连通性

ansible all -m ping

ansible webservers -m ping

ansible 192.168.158.25 -m ping

Ansible自动化运维工具(二)_第14张图片 

Ansible自动化运维工具(二)_第15张图片

(10)yum 模块 

在远程主机上安装与卸载软件包

ansible-doc -s yum
参数 注释
name 指定要安装卸载的软件
state=present/absent 默认persent添加absent卸载

举例:

#安装hyyps服务
ansible dbservers -m yum -a "name=httpd"

Ansible自动化运维工具(二)_第16张图片

#查看安装服务的状态
nsible dbservers -m command -a 'service httpd status'

Ansible自动化运维工具(二)_第17张图片

#卸载httpd服务
ansible dbservers -m yum -a "name=httpd state=absent"

Ansible自动化运维工具(二)_第18张图片Ansible自动化运维工具(二)_第19张图片Ansible自动化运维工具(二)_第20张图片

(11)service/system模块

管理远程被控制主机上的管理服务的运行状态

常用参数:

参数 注释
name=“名称” 管理的服务名称
enable=true/false 设置服务开机自启或关闭
state=start/stop/restart 设置服务的状态为开始/关闭/重启
enable=yes/no 设置是否开机自启
runlevel 若设置开机自启则要设置在那些系统等级使用

举例:

#下载httpd服务
ansible dbservers -m yum -a "name=httpd"
#设置开机自启,服务的状态为开启
ansible dbservers -m service -a 'enabled=yes  name=httpd state=started'

Ansible自动化运维工具(二)_第21张图片

Ansible自动化运维工具(二)_第22张图片

(12)script模块

实现远程批量运行本地的shell脚本

#查看模块下的功能
ansible-doc -s script
ansible服务器:
vim  /test.sh
#编写/下的test.sh脚本内容如下
#!/bin/bash
echo  "this is test"
chmod +x /test.sh
ansible webservers -m script -a "/test.sh"

Ansible自动化运维工具(二)_第23张图片

(13)setup模块

setup 模块可以获取这些信息 facts 组件收集d 被管理节点信息

参数:filter 过滤可配合正则表达式。

ansible webservers -m setup -a 'filter=*ipv4'

Ansible自动化运维工具(二)_第24张图片3.hostsinverntory主机清单

hosts配置文件位置:/etc/ansible/hosts;

Inventory支持对主机进行分组,每个组内可以定义多个主机,每个主机都可以定义在任何一个或多个主机组内

(1)inventory 中的变量含义

变量 含义
ansible_host ansible连接节点时的IP地址
ansible_port 连接对方的端口号,ssh连接时默认为22
ansible_user 连接对方主机时使用的主机名。不指定时,将使用执行ansible或ansible-playbook命令的用户
ansible_password 连接时的用户的ssh密码,仅在未使用密钥对验证的情况下有效
ansible_ssh_ private_key_file 指定密钥认证ssh连接时的私钥文件
ansible_ssh_common_args 提供给ssh、sftp、 scp命令的额外参数
ansible become 允许进行权限提升
ansible become_ method 指定提升权限的方式,例如可使用sudo/ su/runas等方式
ansible become_user 提升为哪个用户的权限,默认提升为root
ansible_become_password 提升为指定用户权限时的密码
#ansible主机配置
#如果是名称类似的主机,可以使用列表的方式标识各个主机。
vim /etc/ansible/hosts
[webservers]
192.168.198.12:22		#冒号后定义远程连接端口,默认是 ssh 的 22 端口
192.168.146.1[2:3]
[dbservers]
db-[a:f].example.org	#支持匹配 a~f
(1)主机变量
[webservers]
192.168.198.13 ansible_port=22 ansible_user=root ansible_password=000000
ansible webservers -a 'ls -lh /home'

Ansible自动化运维工具(二)_第25张图片

(2)组变量
[webservers]
192.168.198.13
#表示为 webservers 组内所有主机定义变量
[webservers:vars]			
ansible_user=root
ansible_password=000000

[all:vars]					#表示为所有组内的所有主机定义变量
ansible_port=22

Ansible自动化运维工具(二)_第26张图片

ansible webservers -a 'ls -lh /home'

Ansible自动化运维工具(二)_第27张图片

(3)组嵌套
[nginx]
192.168.198.12
192.168.198.13
192.168.198.14

[apache]
192.168.198.3[0:3]

#表示为 webs 主机组中包含了 nginx 组和 apache 组内的所有主机
[webs:children]		
nginx
apache

你可能感兴趣的:(运维,ansible,自动化)