【Ansible】ad-hoc与常用模块
【摘要】 什么是ad-hocad-hoc 简而言之就是 “临时命令”,执行完即结束,并不会保存;ansible工具通过 ssh 协议 ,实现对远程主机的配置管理,应用部署、任务执行等功能; 命令使用格式; ansible <host-pattern> [-m module_name] [-a args]--version #ansible版本信息 -v #显示详细信息 -i #主机清单文件路径,默认是...
什么是ad-hoc
ad-hoc 简而言之就是 “临时命令”,执行完即结束,并不会保存;
ansible工具通过 ssh 协议 ,实现对远程主机的配置管理,应用部署、任务执行等功能;
命令使用格式;
ansible <host-pattern> [-m module_name] [-a args]
- --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模式
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)