ansible 基于ssh
主要组成部分
安装
yum安装需要先安装epel源:yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
相关文件
配置文件说明
cat /etc/ansible/ansible.cfg
简单命令
1、ansible-doc 显示模块帮助
参数:-a 显示所有的模块
-l 列出可用模块
比如:查看ping命令如何使用:ansible-doc ping
2、ansible
格式:ansible 主机(主机/分组/清单+通配符/清单+逻辑与或非/清单+正则表达式) -m 模块 -a 参数
注意:使用ansible命令前,一般的都会先进行主机直接得K验证,方便测试验证:https://www.cnblogs.com/leihongnu/p/16718372.html
1)查看web分组的主机:ansible web --list
2)查看192.168.59.103主机的/root目录下的内容: ansible 192.168.59.103 -m command -a 'ls /root'
默认是:-m command ,所以也可以不写: ansible 192.168.59.103 -a 'ls /root'
3)创建给192.168.59.103主机创建目录: ansible 192.168.59.103 -a 'mkdir /data'
注意:创建目录有专门的模块,上面的命令也可以创建
4)创建给192.168.59.10*主机创建用户user1: ansible 192.168.59.10* -a 'useradd user1'
注意:192.168.59.10*,的通配符*号
5)给用户设置密码: ansible 192.168.59.103 -m shell -a 'echo 123456|passwd --stdin user1'
注意:-m command 模块不支持”|“管道符,需要用到shell模块
6)命令的执行过程
常用模块
1、command 远程主机上执行命令,默认模块,可不写-m command
此命令不支持:$hostname,< ,>, |,& 等特殊符号,如果要使用需要用shell模块
ansible 192.168.59.10* -a 'useradd user1'
2、shell 与command基本相同,使用shell执行命令执行比command更复杂的命令,但也只能处理比较复杂一点的
ansible 192.168.59.103 -m shell -a 'echo 123456|passwd --stdin user1'
3、script 执行脚本
ansible 192.168.59.103 -m script -a 脚本.sh
4、copy ansible端复制文件到被控端
src 源文件
dest 目的地文件
backup 备份,将目的主机上的文件备份为:文件名+时间
owner 指定目的地文件所有人
group 所有组
mode 指定目的地文件权限
将/root/1.txt文件复制到192.168.59.103下/root/1.txt,并且备份
ansible 192.168.59.103 -m copy -a 'src=/root/1.txt dest=/root/1.txt backup=yes'
5、fetch 复制抓取文件到ansible本机,与copy相反
常用参数:
src 受控主机源文件,单个文件,不能是目录
dest 本机目录,默认抓取到ansible主机上的/被控端
flat 基本名称功能
ansible 192.168.59.103 -m fetch -a 'src=/root/1.log dest=./'
复制192.168.59.103下的/root/1.log到ansible主机的当前目录
6、file文件属性设置
常用参数:
path 指定文件名称,和参数name同样
state 指定操作的状态 /touch创建文件/absent删除文件或目录/directory创建目录/link创建软连接/hard创建硬连接
owner 设定文件用户
group 设定文件组
src 源文件
dest 目标文件
recurse 递归更改
ansible 192.168.59.103 -m file -a 'path=/data/ansible/test/1.txt state=touch'
注意:/data/ansible/test/目录必须存在,否则创建失败
7、archive压缩
常用参数:
path 打包目录名称
dest 打包文件明称
formatansible westos -m archive -a 'path=/etc dest=/opt/etc.tar.bz2 format=bz2 owner=westos mode=666' 打包格式
owner 指定文件所有人
mode 指定文件权限
打包被控端192.168.59.103 下/var/log/httpd 的文件到/root/logs.tar.gz
ansible 192.168.59.103 -m archive -a 'path=/var/log/httpd dest=/root/logs.tar.gz format=gz'
8、unarchive 解压缩
常用参数:
copy no从受控主机找源文件src yes默认,从ansible主机复制文件到受控主机
remote_src 与copy相反 yes包在受控主机 no 在ansible主机
src 文件或者包路径
dest 受控主机目录
mode 指定文件权限
9、hostname 修改主机名
ansible 192.168.59.103 -m hostname -a 'name=103'
立即生效,但是/etc/host没有修改
10、cron 计划任务
常用参数:
minute/hour/day/month/weeekday 时间
name 名称,建议写上,不写也可以
job 任务
disabled yes/no/true/false 禁用计划/启动计划
state absent删除计划
ansible 192.168.59.103 -m cron -a 'job="mkdir /data/103" minute=07 hour=15 name=10301'
每天15:07创建一次目录
ansible 192.168.59.103 -m cron -a 'job="/usr/bin/wall FBI" minute=* hour=17 name=10303' 每天17点开始广播FBI
ansible 192.168.59.103 -m cron -a 'state=absent name=0302' 删除10302任务
ansible 192.168.59.103 -m cron -a 'job="mkdir /data/103" disabled=true name=10302' 禁用10302任务
11、yum
常用参数:
name 指定仓库名称
baseul 指定源路经
description 指定仓库描述
file 指定仓库文件名称
enabled 仓库是否启用
gpgcheck 仓库是否检测gpgkey
state present/absent 建立(默认)/删除
ansible 192.168.59.103 -m yum -a 'name=tree' 安装tree(192.168.59.103可以使用yum安装的情况)
ansible 192.168.59.103 -m yum -a 'name=tree,net-tools' 安装tree和net-tools,用逗号隔开(192.168.59.103可以使用yum安装的情况)
ansible 192.168.59.103 -m yum -a 'name=/root/tree.rpm' 安装单个tree.rpm包,需要先上传rpm到被控端
12、service 服务
ansible 192.168.59.103 -m service -a 'name=httpd state=started'
启动httpd服务,注意:httpd必须可以使用service/systemctl命令启动
enabled=yes/no 开机启动/不启动
13、firewalld 防火墙
常用参数:
zone 火墙的域
service 服务名称
permanent 永久生效
state= enabled/disabled 允许/拒绝
immediate 立即生效
ansible 192.168.59.103 -m firewalld -a 'service=http state=enabled permanent=yes immediate=yes' 开启服务http
ansible 192.168.59.103 -m firewalld -a 'port=80/tcp state=enabled permanent=yes immediate=yes' 开启防火墙端口80/tcp
14、user 用户
常用参数:
name 必须参数 uid 指定用户的uid
group/groups 组与附加组 comment 指定用户的注释信息
append 指定添加附加组默认值no state absent/present
shell 指定用户默认shell password generate_ssh_key=yes
home 指定家目录
ansible 192.168.59.103 -m user -a 'name=httpd shell=/sbin/nologin' 创建用户httpd,shell类型不可登录
15、group 用户组
常用参数:
name 组名
state absent/present
gid 组id
ansible 192.168.59.103 -m group -a 'name=test '
简单使用
1、配置主机清单
分组为:web
注意:默认情况下ssh的端口号是22,如果ssh的默认端口不是22,需要加上端口号。
如ssh的端口是是1022,清单上的ip必须为:192.168.59.103:1022
2、验证主机是否添加成功
ansible 192.168.59.103 -m ping 没有K验证的话需要手动输入密码,如下:
ansible 192.168.59.103 -m ping -k
或者用分组的方式
标签:name,59.103,主机,192.168,ansible,笔记,root From: https://www.cnblogs.com/leihongnu/p/16718145.html