如何做一个好的网站,做资源网站盈利点,软件公司,重庆大良网站建设目录
Ansible模块#xff08;ad-hoc模式#xff09;
1.command模块#xff1a;远程执行命令
2.shell 模块#xff1a;远程执行命令#xff0c;支持管道#xff0c;重定向
3.Raw模块#xff1a;先登录#xff0c;再执行#xff0c;最后退出
4.Script模块#xff…目录
Ansible模块ad-hoc模式
1.command模块远程执行命令
2.shell 模块远程执行命令支持管道重定向
3.Raw模块先登录再执行最后退出
4.Script模块远程执行脚本
5.cron 模块远程定义任务计划
6.User模块管理用户的模块
7.Group模块管理用户组
8.Copy模块指定本地文件复制到远程主机
9.Fetch模块从远程主机获取文件
10.File模块设置文件属性
11.Service/systemd模块控制服务运行状态
12.yum模块远程安装软件
13.Mount模块管理设备下载和caish卸载
14.Unarchive模块解压缩模块
15.Archive模块打包压缩
16.Get_url模块下载文件
17.Replace模块类似于sed命令
18.Setup模块获取主机信息 Ansible模块ad-hoc模式 Ansible帮助命令 ansible –help #查询更多的参数命令 ansible-doc #帮助命令 ansible-doc -l #列出所以的模块 ansible-doc 模块名 #查看模块的详细信息 ansible-doc 模块名 -s #查看模块的选项使用说明 sible中常见的返回值 返回值 返回值含义 changed 几乎所有的Ansible模块都会返回该变量表示模块是否对远程主机执行了修改操作 failed 如果模块未能执行完成将返回failed为true msg 模块执行失败的原因常见的错误如ssh连接失败 rc 与命令行工具相关的模块会返回rc,表示执行Linux命令的状态码 stdout 与rc类似返回的是标准输出的结果 stderr 与rc类似返回的是标准错误的结果 backup_file 所有存在backup选项的模块用来返回备份文件的路径 results 应用在playbook中存在循环的情况返回多个结果 模块的格式
# 默认为command模块
ansible 主机 / 组名称 -m 模块 -a “具体命令”
ansible 主机 / 组名称 -a “具体命令” 1.command模块远程执行命令
在远程主机执行命令不支持管道重定向等shell的特性。【默认模块】 常用的参数command和shell可用 chdir在远程主机上运行命令前提前进入目录creates判断指定文件或目录是否存在如果存在不执行后面的操作removes判断指定文件或目录是否存在如果存在执行后面的操作 正常用法
切换到指定目录在执行命令
[rootweb01 ~]# ansible web02 -m command -a chdir/home ls
192.168.143.162 | CHANGED | rc0
456.txt 判断指定文件或目录是否存在如果存在该怎么办
执行命令 不执行命令 参数可结合使用 与shell的区别对管道及重定向等shell命令支持与否 2.shell 模块远程执行命令支持管道重定向
输出信息到shell.txt
[rootweb01 ~]# ansible web02 -m shell -a echo 这是shell命令 shell.txt
192.168.143.162 | CHANGED | rc0
验证 Shell使用removes参数 3.Raw模块先登录再执行最后退出
它是支持一些shell命令的因为它的本质就是ssh登录后再执行命令
输出信息到raw.sh文件中
[rootweb01 ~]# ansible web02 -m raw -a echo 这是raw模块 raw.sh 4.Script模块远程执行脚本
格式
ansible 本地主机 -m script -a script_file
script_file填写你的目标主机脚本路径
再web01,web02主机上编写脚本 执行web02主机上的脚本 可以看出不能执行远程服务器的脚本 执行本地主机web01的脚本 5.cron 模块远程定义任务计划
其中有两种状态statepresent表示添加可以省略absent表示移除。 Cron模块常用的参数 minute/hour/day/month/weekday分/时/日/月/周job任务计划要执行的命令name任务计划的名称user指定计划任务属于哪个用户默认是root用户state present创建 absent删除 不写执行时间默认就是每分钟一次不写name默认为None)
主题为test输出hello
[rootweb01 ~]# ansible web02 -m cron -a job/bin/echo hello nametest 查看设置的定时任务 6.User模块管理用户的模块
user用于管理用户的创建与删除相当于useradd,userdel,usermod; 常用的参数 name用户名必选参数 statepresent|absent创建账号或者删除账号present表示创建absent表示删除 systemyes/no是否为系统账号 uid用户uid group用户基本组 groups: 用户所属附加组 shell默认使用的shell create_homeyse/no: 是否创建家目录 password用户的密码建议使用加密后的字符串 removeyes/no是否删除用户的家目录 user模块更多参数可使用ansible -doc user查看 用户名要用引号包裹创建用户test01不删除家目录
[rootweb01 ~]# ansible web02 -m user -a nametest01 removeno 7.Group模块管理用户组
group模块用于管理用户组的相当于groupadd,groupdel等。
User模块的参数同样适用于group
设置用户组为mysql组id为1001设为系统用户组
[rootweb01 ~]# ansible web02 -m group -a namemysql gid1001 systemyes 8.Copy模块指定本地文件复制到远程主机
常用参数 src 本地文件路径可根据当前位置决定使用相对路径还是绝对路径 dest 目标文件路径只能使用绝对路径 content 指定文件内容写入到目标文件如果文件不存在会创建 owner 指定属主 group 指定组 mode 指定权限 copy 模块的更多使用可使用ansible-doc copy查看。 复制本地文件222.sh到远程服务器的root下
[rootweb01 ~]# touch 222.sh
[rootweb01 ~]# ansible web02 -m copy -a src222.sh dest/root/ 将123写入远程服务器的1.txt文件中
[rootweb01 ~]# ansible web02 -m copy -a content123 dest/root/1.txt 9.Fetch模块从远程主机获取文件
一般用于收集远程主机上的配置文件、日志文件等数据进行备份或检查 常用参数 src指定远程主机上要获取的文件的路径。必需参数 dest指定在本地主机保存文件的目标目录目录不存在会自行创建。必须参数 flat这是一个可选参数。默认值为no。当flat设置为yes时文件将直接保存到dest指定的文件下当flat设置为no时文件将按照远程主机的主机名 / IP地址和文件路径结构保存在dest目录下。 在远程主机web02上创建fetch.sh文件 把远程主机的fetch.sh传到本地fetch目录下
[rootweb01 ~]# ansible web02 -m fetch -a srcfetch.sh destfetch 可以看到没有使用flat参数默认为no文件会以ip地址文件的形式保存到dest所给目录下。 设置flatyes时dest参数只能为文件不能为目录执行的操作是将src文件内容写入dest文件中。
[rootweb01 ~]#rm -rf fetch
[rootweb01 ~]# ansible web02 -m fetch -a srcfetch.sh destfetch flatyes 10.File模块设置文件属性
对文件操作创建文件或目录、删除文件或目录、修改文件权限 常用参数 path 定义需要操作的文件或目录必须参数 src 本地文件路径 recurse 递归授权 owner 指定属主 group 指定属组 mode 指定权限 state 指定对文件的操作必须参数 directory 在远端创建目录 touch在远端创建文件 link 创建软连接 hard 创建硬连接 absent 表示删除文件或目录 参数path指定路径必须存在 11.Service/systemd模块控制服务运行状态 常用参数 name 定义要启动服务的名称 state 指定服务状态 started 启动服务具有幂等性 stopped 停止服务具有幂等性 restarted 重启服务 reloaded 重载服务 enabled 开机自启 关闭防火墙服务 12.yum模块远程安装软件
name软件包的名多个软件包逗号隔开
stateinstalled/present安装、removed/absent卸载 、lastest 更新、如果已安装installed列出已安装的包
安装httpd服务 可以看到installed没有安装服务时会安装安装了会列出包
13.Mount模块管理设备下载和caish卸载 src 指定挂载源 path指定挂载点 (挂载点不存在会自动创建) fstype指定文件系统类型 opts挂载参数默认为defaults dump是否备份0表示不进行备份 passno文件系统检测0表示不进行文件系统检测 state present 写入fstab但实际没有挂载需要重启服务器 absent 取消临时挂载并且删除fstab mounted 写入fstab并且直接挂载了常用 unmounted 临时取消挂载但是没有删除fstab重启服务器之后就会恢复常用 将镜像挂载到目录media下 14.Unarchive模块解压缩模块
它支持tartar.gz,tar.bz2,.zip等压缩包格式 常用参数 src 源路径可以是ansible主机上的路径也可以是远程主机上的路径如果是远程主机上的路径则需要设置 remote_srcyes dest 指定了解压缩后文件的目标目录 mode 设置解压缩后的文件权限可以使用数字或符号模式例如 644 或 urw,gor。 list_files 默认值为no,如果设置为yes解压同时返回压缩包的文件列表 remote_src如果设置为 yes则表示 src 参数是远程主机上的路径。 extra_opts: 允许您指定解压缩命令的额外选项。这对于一些特定格式的存档文件非常有用。 creates: 如果指定了此选项只有在 creates 中指定的文件或目录不存在时才会执行解压缩操作。 owner: 设置解压缩后文件的所有者。 group: 设置解压缩后文件的所属组。 这个模块有两种模式
当参数copyno默认为no为本地解压本地指定目录接收远程解压远程目录接收。即不会出现本地文件传输到远程或远程文件被本地接收的情况 本地解压: 远程主机解压远程主机src路径必须写绝对路径 当参数copyyes具有copy模块的属性可以把文件传输到远程主机。
将本地解压后的文件传入远程主机的/home下
ansible web02 -m unarchive -a srcopenjdk-8u44-linux-x64.tar.gz dest/home/ copyyes 15.Archive模块打包压缩 常用的参数 path: 必须参数远程主机上需要被打包压缩的源文件/目录 dest: 打包压缩后的包文件路径(包文件的父目录必须存在);如果包文件已存在则会被覆盖 format: 指定压缩类型包括: bz2、gz默认、tar、xz、zip removeyes / no: 是否删除源文件 将本地文件1.txt打包压缩为1.gz 16.Get_url模块下载文件 常用参数 url (必需): 指定要下载文件的URL。 dest (必需): 指定文件将保存到本地目标主机上的目标路径。 force (可选): 如果设置为 yes将强制下载文件即使文件已经存在。默认为 no。 checksum (可选): 提供要下载文件的校验和以确保文件完整性。 backup (可选): 如果设置为 yes将在下载之前备份现有文件。默认为 no。 timeout (可选): 设置下载文件的超时时间秒。 url_username (可选): 如果目标URL需要身份验证可以提供用户名。 url_password (可选): 如果目标URL需要身份验证可以提供密码。 owner (可选): 设置下载后文件的所有者。 group (可选): 设置下载后文件的所属组。 mode (可选): 设置下载后文件的权限模式。 把文件下载到远程主机web02的root/下
[rootweb01 ~]# ansible web02 -m get_url -a urlhttps://blog.csdn.net/LCL_18?typeblog dest/root 17.Replace模块类似于sed命令
主要的操作也是基于正则进行匹配和替换 常用参数 path必须参数指定要修改的文件 regexp必须参数指定一个文本内容也可以使用正则表达式 replace替换regexp参数匹配到的字符串 backupyes /no: 修改源文件前创建一个包含时间戳信息的备份文件 before如果指定则仅替换/删除此匹配之前的内容可以和after参数结合使用 after如果指定则仅替换/删除此匹配之后的内容可以和before参数结合使用 owner修改文件用户名 group修改文件组名 mode修改文件权限 实现关闭selinux
[rootweb01 ~]# ansible web01 -m replace -a path/etc/selinux/config regexpSELINUXe.* replaceSELINUXdisabled 18.Setup模块获取主机信息
facts 组件是用来收集节点信息的使用 setup 模块可以获取这些信息
常用参数
filter对 setup 模块收集的系统信息进行筛选只获取你指定的那些特定的信息子集
gather_subset指定具体要收集哪些类别的系统信息以及排除哪些类别
gather_timeout 设定了收集系统信息的超时时间限制以秒为单位 fact_path 指定 Ansible 查找自定义事实Custom Facts文件的本地路径。
一些facts组件的内置变量 ansible_all_ipv4_addresses ipv4的所有地址 ansible_all_ipv6_addresses ipv6的所有地址 ansible_date_time 获取到控制节点时间 ansible_default_ipv4 默认的ipv4地址 ansible_distribution 系统 ansible_distribution_major_version 系统的大版本 ansible_distribution_version 系统的版本号 ansible_domain 系统所在的域 ansible_env 系统的环境变量 ansible_hostname 系统的主机名 ansible_fqdn 系统的全名 ansible_machine 系统的架构 ansible_memory_mb 系统的内存信息 ansible_os_family 系统的家族 ansible_pkg_mgr 系统的包管理工具 ansible_processor_cores 系统的cpu的核数(每颗) ansible_processor_count 系统cpu的颗数 ansible_processor_vcpus 系统cpu的总个数cpu的颗数*CPU的核数 ansible_python 系统上的python
查看主机web02的ipv4地址
[rootweb01 ~]# ansible web02 -m setup -a filteransible_all_ipv4_addresses