[root@localhost data]# ansible all -m script -a ‘/data/host.sh’
192.168.10.4 | CHANGED => {
“changed”: true,
“rc”: 0,
“stderr”: “Shared connection to 192.168.10.4 closed.\r\n”,
“stderr_lines”: [
“Shared connection to 192.168.10.4 closed.”
],
“stdout”: “localhost.localdomain\r\n”,
“stdout_lines”: [
“localhost.localdomain”
]
}
192.168.10.3 | CHANGED => {
“changed”: true,
“rc”: 0,
“stderr”: “Shared connection to 192.168.10.3 closed.\r\n”,
“stderr_lines”: [
“Shared connection to 192.168.10.3 closed.”
],
“stdout”: “localhost.localdomain\r\n”,
“stdout_lines”: [
“localhost.localdomain”
]
}
-
将本地文件复制到远程主机
-
常用选项:
src:源文件地址
dest:目标文件地址
owner:文件所有者
group:文件所属组
mode:文件权限
backup:如果目标主机已有此文件,是否对目标主机原文件进行备份
content:生成内容至目标文件
- 示例:将本地/etc/hosts文件复制到远程主机/date目录下
ansible all -m copy -a ‘src=/etc/hosts dest=/date’
-
将客户端文件复制到服务端(只能是文件,不能是目录)
-
常用选项
src:源文件地址(远程主机)
dest:目标文件地址(本地),会生成一个源文件主机的目录
- 示例:将远程主机的messages日志复制到本地/data目录
ansible 192.168.10.3 -m fetch -a ‘src=/var/log/messages dest=/data’
tree /data/
/data/
├── 192.168.10.3
│ └── var
│ └── log
│ └── messages
└── host.sh
3 directories, 2 files
-
设置文件属性,创建、删除文件或文件夹
-
常用选项:
name:将要创建文件的名称
state:决定创建的属性,touch、directory、hard、link、absent(递归删除)
owner:属主
group:属组
mode:权限
- 示例:为文件做软链接
ansible all -m file -a ‘src=/etc/fstab dest=/data/fstab.link state=link’
-
修改主机名(注意:需要配合变量,不然批量主机名都是一样的)
-
示例:修改单一节点主机名
ansible 192.168.10.3 -m hostname -a ‘name=node01’
-
计划任务模块
-
常用选项
minute:分
hour:时
day:日
month:月
weekday:周
job:任务
name:任务名
disabled:禁用任用
- 示例:每五分钟同步一次时间
ansible all -m cron -a ‘minute=5 “job=/usr/sbin/ntpdate ntp.aliyun.com” name=ntpdate’
-
包管理模块,可安装多个包,本地包
-
常用选项
name:包名
list:列出
state:状态;present、installed、latest;absent、removed
- 示例:安装httpd服务;多个包用“,”隔开
ansible all -m yum -a ‘name=httpd state=present’
-
仓库管理模块,为远程主机设置yum源
-
常用选项
name:仓库名,仓库id;例:name=[centos]
file:配置文件名,即*.repo;不设置默认以仓库id为名
enabled:是否使用源,默认yes;即:enabled=1
gpgcheck:是否开始rpm包验证,默认no;即:gpgcheck=0
state:值为absent时删除源
baseurl:设置仓库的baseurl
- 示例:设置阿里源为yum源
ansible all -m yum_repository -a ‘name=aliyuan file=aliyuan baseurl=http://mirrors.aliyun.com/repo/Centos-7.repo’
-
服务管理模块
-
常用选项
name:服务名
state:状态;started、stopped、restarted、reloaded
enabled:是否开机启动;yes、no
- 示例:启动httpd服务,并设置开机启动
ansible all -m service -a ‘name=httpd state=started enabled=yes’
-
用户管理模块
-
常用选项:
name:用户名
shell:shell类型
uid:用户uid
gid:用户gid
system:是否为系统用户;yes、no
group:用户组
groups:附加组
home:家目录
state:状态;absent,删除用户
remove:是否删除家目录;yes、no
- 示例:创建一个系统用户nginx
ansible all -m user -a ‘name=nginx shell=/sbin/nologin system=yes’
-
selinux管理模块
-
常用选项
configfile:配置文件,默认为/etc/selinux/config
state:状态;disabled、enforcing、permissive
- 示例:禁用selinux
ansible all -m selinux -a ‘configfile=/etc/selinux/config state=disabled’
-
挂载模块
-
常用选项
src:要挂载的“设备”
path:挂载点的路径
state:状态;mounted:挂载,没有挂载点将创建;unmounted:卸载;absent:从fstab文件中删除;remounted:重新挂载
fstype:挂载类型;nfs
- 示例:将192.168.10.4:/data挂载到远程主机/data下
ansible 192.168.10.3 -m mount -a ‘src=192.168.10.4:/data path=/data fstype=nfs state=mounted’
-
解压缩
-
常用选项
src:tar包源路径,可以是ansible服务端,也可以时远程主机路径,远程主机copy=no
copy:yes为在ansible服务端找包,no为在远程主机找
dest:解压绝对路径
mode:权限
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
、OPPO等大厂,18年进入阿里一直到现在。**
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-FefpW1lA-1714721674937)]
[外链图片转存中…(img-hm0or4BV-1714721674937)]
[外链图片转存中…(img-8exPkPER-1714721674937)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!