我的云文档怎么没有了(我的云文档怎么找)
757
2022-05-30
什么是ad-hoc
ad-hoc 简而言之就是 “临时命令”,执行完即结束,并不会保存;
ansible工具通过 ssh 协议 ,实现对远程主机的配置管理,应用部署、任务执行等功能;
命令使用格式;
ansible
--version #ansible版本信息
-v #显示详细信息
-i #主机清单文件路径,默认是在/etc/ansible/hosts
-m #使用的模块名称,默认使用command模块
-a #使用的模块参数,模块的具体动作
-k #提示输入ssh密码,而不使用基于ssh的密钥认证
-C #模拟执行测试,但不会真的执行
-T #执行命令的超时
--become-user #指定sudo时的用户名称,默认为root
命令示例:
ansible 'groups' -m command -a 'df -h'
执行过程:
1.加载自己的配置文件,默认 /etc/ansible/ansible.cfg ;
2.查找对应的主机配置文件,找到要执行的主机或者组;
3.加载自己对应的模块文件,如 command ;
4.通过 ansible 将模块或命令生成对应的临时 py 文件,并将该文件传输至远
程服务器对应执行用户 $HOME/.ansible/tmp/ansible-tmp-number/XXX.PY ;
5.执行用户家目录的 `` 文件;
6.给文件 +x 执行;
7.执行并返回结果;
8.删除临时 py 文件, sleep 0 退出;
执行状态
使用 ad-hoc 执行一次远程命令,注意观察返回结果的颜色;
绿色: 代表被管理端主机没有被修改
黄色: 代表被管理端主机发现变更
红色: 代表出现了故障,注意查看提示
常用模块
查看所有的模块
[root@manger ~]# ansible-doc -l
查看模块的详细文档
[root@manger ~]# ansible-doc copy
查看模块的所有方法
[root@manger ~]# ansible-doc -s copy
模块介绍
command模块
功能:在远程主机执行 Shell 命令;此为默认模块,可忽略 -m 选项;
chdir chdir /opt 执行ansible时,切换到指定的目录
creates creates /data/file 如果文件存在,则跳过执行
removes removes /data/file 如果文件存在,则执行
shell模块
功能:在远程主机执行 Shell 命令,执行管道等特殊符号的操作;
chdir chdir /opt 执行ansible时,切换到指定的目录
creates creates /data/file 如果文件存在,则跳过执行
removes removes /data/file 如果文件存在,则执行
script模块
功能:在被控节点,运行 Ansible 主机的脚本;
yum模块
功能:管理各个操作系统的软件包;
name: httpd、nginx、... 指定安装软件包名或软件包URL
state:present(Defaults)、absent、latest 指定yum对应的方法
enablerepo: epel、base、... 允许从哪些仓库获取软件
disablerepo :epel、base、... 禁止从哪些仓库获取软件
exclude :kernel、... 排除某些软件包
download_only: yes、no 仅下载软件包,不安装
copy模块
功能:从 ansible 服务端主控端复制文件到远程主机;
src 复制本地目录下的文件至远程服务器
dest 文件复制到远程的绝对路径
owner root(Defaults) 文件复制到远程并设定属主
group root(Defaults) 文件复制到远程并设定属组
mode file=644,directory=755 文件复制到远程并设定权限
backup yes 备份被修改前的配置文件
content 新建文件并给文件添加内容
file模块
功能:为被控端创建文件或目录,设定权限属性;
path 指定远程服务器的路径
recurse 递归方式(可以是递归授权)
state touch、directory、link、absent 文件复制到远程的状态
owner root(Defaults) 文件复制到远程并设定属组
group root(Defaults) 备份被修改前的配置文件
mode file=644,directory=755 文件复制到远程并设定权限
lineinfile模块
功能:修改或删除文件内容,与系统中的 sed 命令类似;
path 指定要操作的文件
regexp 使用正则表达式匹配对应的行
line 修改为新的内容
insertafter 将文本插入到“指定的行”之后
insertbefore 将文本插入到“指定的行”之前
state absent、present(Defaults) 删除对应的文本时,需要
state=absent
backrefs yes、no 1.支持后向引用、2.当未匹配到内容则不操作文件
backup 是否在修改文件之前对文件进行备份
create 当要操作的文件并不存在时,是否创建对应的文件
systemd模块
功能:管理服务启动与停止,与 service 模块用法一致;
name httpd、nginx、... 定义要启动服务的名称
state started、stopped、restarted、
reloaded 指定服务状态
enabled yes、no 允许服务开机自启或禁止服务开机自启
group模块
功能:管理被控端用户组;
name 指定创建的组名
gid 为组设置可选gid
state present(Default)、absent 是否将组创建在远程主机上
system yes、no(Default) 是否创建系统组
user模块
功能:管理被控端用户;
name 创建或删除的用户名
uid 为用户设置可选uid
group 为用户设置主要的组
groups 为用户设置附加的组
shell present(Default)、 absent 为用户设置登陆时的Shell
create_home yes(Default)、no 为用户创建主目录
state present(Default)、 absent 用户是否应该存在
remove yes、no(Default) 删除与用户关联的目录,只有当 state=absent时生效
generate_ssh_key yes、no(Default) 为相关用户生成ssh密钥。不会覆盖现有的ssh密钥
ssh_key_bits 2048 创建用户ssh密钥中位数
ssh_key_file .ssh/id_rsa(Default) 可以实现ssh密钥改名,或变更存放ssh密钥位置
cron模块
功能:管理被控端计划任务;
name 定时任务基本描述
job 定时任务要执行的命令
minute (Default)、0-59 分
hour (Default)、0-23 时
day (Default)、1-31 日
month (Default)、1-12 月
weekday (Default)、0-6 周
mount模块
功能:管理被控端设备挂载;
src 本地或远程设备的路径
path 设备挂载至本地的路径
fstype xfs、nfs... 文件系统类型
opts defaults、ro... 挂载的参数
state absent、mounted、unmounted 挂载的状态
hostname模块
功能:管理被控端主机名称;
archive模块
功能:打包与压缩;
path 要压缩的文件或目录
dest 压缩后的文件
format bz2、gz、tar、xz、zip 指定打包压缩的类型
unarchive模块
功能:解包与解压缩;
src 要解压的软件包路径
dest 解压到目标位置
remote_src yes、no(default) yes:要解压的包在被控端、no:要解压的包 在控制
selinux模块
功能:管理 SELINUX 防火墙;
state enforcing、permissive、disabled Selinux模式
ssh
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。