Ansible 详解(二)Ad-Hoc

作者 : 开心源码 本文共2821个字,预计阅读时间需要8分钟 发布时间: 2022-05-11 共82人阅读

ansible 是一款轻量级自动化运维工具,由的 Python 语言开发,结合了多种自动化运维工具的特性,实现了批量系统配置,批量程序部署,批量命令执行等功可以; ansible 是基于板块化实现批量操作的。

一、命令格式

ansible patterns -m module  -a arguments -i  inventory --become --ask-become-pass -vvvv

patterns

主机/组匹配格式

all 所有主机

单主机/组

  • host

  • group

多主机/组

host01;host02;……;host0x

group01;group02;……;group0x

host* :host开头的主机

host[00-99] :host开头编号00-99的主机

group*:group开头的组

group[00-99]:host开头编号00-99的组

group01:!group02:组01-组02

group01:&group02:组01&组02

group01:group02:&group03:!group04

module:用板块

arguments:板块参数

inventory:主机目录

become:提权

ask-become-pass:提醒输入提权密码

vvvv:打印日志介绍

二、inventory

文件:hosts

localhost ansible_connect=localmytest ansible_host="xxx.xxx.xxx.xxx" ansible_user="silence" ansible_become_user="root" ansible_python_interpreter="/bin/env python2.6"

三、 ping

检查主机状态

ansible all -m ping -i hosts

四、command

在主机上执行系统命令

相对 shell,不会解析 HOME 等自己设置环境变量,以及<,>,|,&等命令符。

ansible all -m  command -a ‘sleep 10’ -i hostsansible mytest -m command -a 'echo ${TEST}'  -i hosts

五、shell

在主机上执行 shell 命令

ansible all -m  shell -a ‘sleep 10’ -i hostsansible mytest -m shell -a 'echo ${TEST}'  -i hosts

六、raw

执行原始命令

ansible mytest -m  raw -a ‘echo ‘date’ >/tmp/current’ -i hosts

七、copy

复制文件

ansible mytest -m  raw -a ‘src= /etc/hosts dest=/tmp/hosts’ -i hosts

复制文件夹

ansible mytest -m  raw -a ‘src= /etc/profile.d/dest=/tmp/profile.d’ -i hosts

八、file

对文件或者者文件夹进行操作

修改文件权限

ansible mytest -m file -a ‘dest=/tmp/hosts mode=777 owner=root  group=root’ -i hosts --become --ask-become-pass

创立文件夹

ansible mytest -m file -a ‘dest=/tmp/kk/01 mode=777 owner=silence  state=directory’ -i hosts

删除文件/文件夹

ansible mytest -m file -a ‘dest=/tmp/kk/ state=absent’ -i hosts

九、yum

注意:针对受控机器为 centos 系统,python 解释必需为系统默认安装的

安装到最新包

ansible mytest -m yum -a ‘name=tree state=latest’ -i hosts --become --ask-become-pass

卸载包

ansible mytest -m yum -a ‘name=tree state=absent’ -i hosts --become --ask-become-pass

安装安装包

ansible mytest -m yum -a ‘name=tree state=present’ -i hosts --become --ask-become-pass

安装指定版本包

ansible mytest -m yum -a ‘name=tree-1.5.3  state=present’ -i hosts --become --ask-become-pass

十 、user

对使用户进行管理

openssl passwd -salt saltstring  password

创立使用户,修改密码

ansible mytest -m user -a ‘name=kk  password=<password>’ -i hosts --become --ask-become-pass

删除使用户

ansible mytest -m yum -a ‘name=kk state=absent’ -i hosts --become --ask-become-pass

十一、git

对 git 代码进行管理

ansible mytest -m git -a ‘repo=http://github.com/imsilence/asynctask.git dest=/tmp/asynctask/version=HEAD’ -i hosts --become --ask-become-pass

十二、service

对服务进行管理

启动服务

ansible mytest -m service -a ‘name=nginx state=started’ -i hosts --become --ask-become-pass

中止服务

ansible mytest -m service -a ‘name=nginx state=stopped’ -i hosts --become --ask-become-pass

重启服务

ansible mytest -m service -a ‘name=nginx state=restarted’ -i hosts --become --ask-become-pass

十三、setup

查看受控机器信息

ansible mytest -m setup -i hosts

十四、异步

参数

-B:最大执行时间

-P:状态查询间隔

ansible mytest -m command -B 300 -P 0 -a ‘sleep 60’ -i hosts

通过 -vvvv 获取调试日志过滤 job

ansible mytest -m command -B 300 -P 0 -a ‘sleep 60’ -i hosts -vvvv|grep job

查询 job 的状态

ansible mytest -m async_status -a ‘jid=557725439653.20928 60’ -i hosts

十五、列表板块

https://docs.ansible.com/ansible/latest/modules/modules_by_category.html

未完待续……

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Ansible 详解(二)Ad-Hoc

发表回复