Ansible执行任务

ansible 主机 -m 模块 -a 动作
Ad-hoc结果返回颜色
- 绿色:命令执行成功且无变化的颜色
- 黄色:命令执行成功,但是有变化(有更改)
- 红色:命令执行失败,报错(看msg:)
- 粉丝|紫色:warning,警告一般无需处理
Ansible查看帮助
Ad-hoc常用模块
command模块、shell模块
[root@m01 <sub>]
[root@m01 </sub>]
注意:command模块不支持特殊符号
script模块
[root@m01 <sub>]
[root@m01 </sub>]
优势:无需将脚本放在其他的机器上
Ansible文件管理模块
file模块
src:指定软链接的源文件
dest:指定软链接的目标文件
path:指定文件路径
owner:指定文件属主
group:指定文件属组
mode:指定文件权限
recurse:递归
state:
- touch 创建文件
- absent 删除
- directory 创建目录
- link 软链接
- hard 硬链接
[root@m01 <sub>]
[root@m01 </sub>]
state=directory'
## 在/opt目录下创建文件abc 属主www 属组www 权限200
[root@m01 <sub>]# ansible web -m file -a 'path=/opt/abc owner=www group=www mode=200
state=touch'
## 创建软链接文件
[root@m01 </sub>]# ansible web -m file -a 'path=/usr/opt_test_link state=absent'
copy模块 { template (推变量文件)}
src: 指定源文件的路径
dest: 指定目标路径
owner: 指定属主
group: 指定属组
mode: 指定权限
backup:备份
- yes/true
- no/false 默认
remote_src:远端的源文件
- yes/true
- no/false
content:指定内容写入文件
[root@m01 <sub>]
[root@m01 </sub>]
[root@m01 <sub>]
[root@m01 </sub>]
[root@m01 ~]
get_url
[root@m01 <sub>]
url:下载网址
dest:下载路径
mode:指定权限
[root@m01 </sub>]
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@m01 ~]
Ansible软件管理模块
yum模块
[root@m01 <sub>]
name:指定安装包的名字
- http:// 从指定的url下载 yum install -y http://网址
- file:// 从本地rpm包安装 yum localinstall
- 包名 从yum仓库中下载 yum install -y 包名
state:
- absent/removed:卸载 yum remove
- present/installed:安装 yum install 默认
- latest:安装最新版本
download_only:只下载不安装
root@m01 </sub>]
yum_repository模块
[root@m01 <sub>]
[base]
name=xxxx
baseurl=http://xxx
gpgcheck=0
gpgkey=file://xxx
enable=1
name:仓库的名字[base]
description:仓库的描述信息 name=xxxx
baseurl:仓库的url地址 baseurl=http://xxx
file:如果没有指定file则文件名和name指定的一致,如果指定了file,文件名为file指定的内容,仓库名为 name指定的内容
owner:指定属主
group:指定属组
mode:指定权限
gpgcheck:秘钥对检测
- yes/True gpgcheck=1
- no/False gpgcheck=0
enabled:是否开启仓库
- yes/True enable=1
- no/False enable=0
state:
- present:创建仓库
- absent:删除仓库
[root@m01 </sub>]
[root@web01 opt]
[nginx-stable]
baseurl = http://nginx.org/packages/centos/$releasever/$basearch/
enabled = 1
gpgcheck = 0
name = nginx stable repo
[root@m01 <sub>]
[root@m01 </sub>]
[root@m01 </sub>]
[root@web01 yum.repos.d]
[nginx-stable]
baseurl = http://nginx.org/packages/centos/$releasever/$basearch/
enabled = 1
gpgcheck = 0
name = nginx stable repo
[nginx-mainline]
baseurl = http://nginx.org/packages/centos/$releasever/$basearch/
enabled = 1
gpgcheck = 0
name = nginx stable repo
[root@m01 ~]
[root@web01 yum.repos.d]
[nginx-stable]
baseurl = http://nginx.org/packages/centos/$releasever/$basearch/
enabled = 1
gpgcheck = 0
name = nginx stable repo
Ansible服务管理模块
service、systemd模块
[root@m01 <sub>]
name:指定服务名字
state:
- started 开启服务
- reloaded 重新加载服务
- stopped 停止服务
- restarted 重启服务
enabled:开机自启
- yes/True 加入开机自启
- no/False 不加入开机自启 默认
[root@m01 </sub>]
Ansible用户管理模块
user模块
[root@m01 <sub>]
useradd www -u 666 -g 666 -s /sbin/nologin -M
-c:描述信息
name:用户名
comment:-c指定用户描述信息
uid:-u指定用户的uid
group: -g指定用户的组 gid
shell: -s指定用户登录的shell -s /sbin/nologin
append:-a 指定附加组并追加附加组
groups:-G指定用户附加组
state:
- absent 删除用户 userdel
- present 创建用户 useradd 默认
remove:
- yes/True userdel -r 删除用户和用户相关的文件
- no/False 默认
ssh_key_bits:创建用户时,创建私钥,私钥的位数 2048
ssh_key_file:指定私钥的位置
create_home:
- yes/True 创建用户同时创建家目录 默认
- no/False 创建用户不创建家目录
[root@m01 </sub>]
group模块
[root@m01 <sub>]
name:指定组名字
gid:指定组id
state:
- present 创建组 groupadd 默认
- absent 删除组 groupdel
[root@m01 </sub>]
Ansible定时任务模块
cron模块
[root@m01 <sub>]
00 04 * * * /usr/bin/ntpdate time1.aliyun.com &>/dev/null
name:定时任务注释信息
minute:分 00
hour:时 04
day:日
month:月
weekday:周
job:执行的任务 /bin/ls
state:
- present 创建定时任务 默认
- absent 删除定时任务
[root@m01 </sub>]
[root@m01 ~]
Ansible磁盘挂载模块
mount模块
[root@m01 <sub>]
mount -t nfs 172.16.1.31:/data /code/wordpress/wp-content/uploads
path:挂载路径 /code/wordpress/wp-content/uploads
src:挂载源 172.16.1.31:/data
fstype:文件类型 -t nfs
state:
- present:只将挂载信息记录在/etc/fstab中(开机挂载)
- mounted:立刻挂载,并将配置写入/etc/fstab中
- unmounted:卸载设备,但是不会清除/etc/fstab中的内容
- absent:卸载设备,并清除/etc/fstab中的内容
挂载:mounted
卸载:absent
mount -o rw,remount /
opts: 指定挂载路径是否可读可写 rw,remount
[root@m01 </sub>]
Ansible数据库模块
mysql_user
[root@m01 ~]
mysql -uroot -p123
grant all on *.* to wp_user@'%' identified by '123';
name:指定用户名 wp_user
host:指定允许连接的IP主机 %
password:指定密码 123
priv:指定权限 '*.*:ALL'
login_user:MySQL登录的用户 root
login_password:MySQL登录用户root的密码 123
state:
- present 创建
- absent 删除
vim /etc/my.cnf
[mysqld]
skip_name_resolve
systemctl restart mariadb
mysql_db
[root@m01 ~]
create database wordpress;
mysqldump -uroot -p123 -B wordpress > /tmp/wordpress.sql
name:指定库名 wordpress
target:导出数据指定存放sql文件的路径 或 需要被导入数据库sql文件的路径
login_user:指定登录的用户
login_password:指定登录的密码
state:
- present 创建
- absent 删除
- dump 导出数据
- import 导入数据