ansible-hoc命令行

ansible一种开源的自动化工具

ansible:
hoc命令行:
是一款开源的自动化运维工具
python
paramiko #模拟ssh协议批量管理主机
jinja2 #模板语言,主要用来传递变量
yaml #相当于是一种编程语言
控制方式:
1. 免密钥:key-gen
参数形式:ansible_ssh_user=root; ansible_ssh_pass=root ansible_ssh_port=22
2. host inventory:记录着客户端的ip信息
调用ansible的三种模式:
hoc:命令行
playbooks:剧本|脚本
roles:角色
安装ansible:
yum install epel-release
yum install ansible -y
配置
[[email protected] ~]# vim /etc/ansible/hosts
[testhosts]
192.168.254.10 ansible_ssh_user=root ansible_ssh_pass=root ansible_ssh_port=22
192.168.254.12 ansible_ssh_user=root ansible_ssh_pass=root ansible_ssh_port=22
ansible默认并发数:5台(最高255)
ansible -f #控制并发数
线程是最小的调度单位
进程是最小的管理单元
ansible-doc -l #查看所支持的模块
ansible-doc -s MODEL_NAME #模块的具体用法和参数
ansible all --list-hosts #查看所有主机

ansible配置文件:(/etc/ansible/ansible.cfg)

#inventory = /etc/ansible/hosts 主机管理资产清单
#library = /usr/share/my_modules/ ansible操作的动作,无论是本地或者远程,都使用一小段代码来执行,这小段代码称之为模块,这个library就是用来存放这些模块的路径
#module_utils = /usr/share/my_module_utils/
#remote_tmp = ~/.ansible/tmp
#local_tmp = ~/.ansible/tmp
#forks = 5 ansible默认操作主机的并发数
#poll_interval = 15
#sudo_user = root 这是默认的执行命令的用户,也可以在playbook中重新设置这个参数
#ask_sudo_pass = True 用来控制Ansible playbook 在执行sudo之前是否询问sudo密码.默认为no
#ask_pass = True Ansible 剧本playbook 是否会自动默认弹出弹出密码.默认为no
#transport = smart
#remote_port = 22 这个指定连接被管理节点的端口,默认是22,除非设置了特殊的ssh端口
#module_lang = C 默认模块和系统之间通信的计算机语言,默认为’C’语言
#module_set_locale = False
#host_key_checking = False 这是设置是否检查ssh秘钥,可以设置为False和True
#timeout = 10 ssh连接超时时间
#log_path = /var/log/ansible.log ansible默认是不记录日志的,如果想把ansible系统输出的日志存放到文件中可以开启这个选项
#private_key_file = /path/to/file 使用ssh公钥私钥登录系统的时候,使用的秘钥路径

还有更多的配置项,大家可以参考官方文档,如下: http://docs.ansible.com/ansible/latest/intro_configuration.html#private-key-file

常用模块:
ping:指定ansible server跟client的连通性
ansible testhosts -m ping
setup: 收集远程主机的facts
每个被管理的节点在接受并运行管理命令之前,会将自己主机相关信息,如操作系统版本,ip地址等报告给远程ansible主机
#ansible 192.168.254.10 -m setup
command:命令模块,默认模块,用于在远程执行命令:
ansible all -a ‘date‘
cron:
state:
prsent:安装
absent:移除
#ansible testhosts -m cron -a "minute=*/10 job=‘echo hello‘ state=present name=test_cron"
user:
name=:指明创建的用户的名字
#ansible testhosts -m user -a ‘name=user1 uid=250 group=group250‘
group:
#ansible testhosts -m group -a ‘name=group250 gid=250‘

copy:
src=:定义本地源文件路径
dest=:定义远程目标文件路径
#ansible testhosts -m copy -a ‘src=/root/a.txt dest=/root/a.txt‘
content=:取代src,表示直接用此处指定的信息生成为目标的内容
#ansible testhosts -m copy -a ‘content=nihao dest=/root/a.txt‘
service:指定运行状态
name=:服务名称
state=:状态,取值有started,stopped,restarted
ansible tests -m service -a ‘name=httpd state=restarted‘
shell:在远程主机上运行命令
尤其是在用到管道等功能的复杂命令
ansible tests -m shell -a ‘cat /etc/passwd|grep user‘
script: 将本地脚本复制到远程主机并运行
ansible testhosts -m script -a ‘/root/a.sh‘
yum:安装程序包
ansible testhosts -m yum -a ‘name=tree state=latest‘
name=:指定要安装的程序包,可以带上版本号
state=:present,latest表示安装,absent表示卸载

原文地址:https://www.cnblogs.com/lxwei0101/p/11703704.html

时间: 2024-07-30 14:43:43

ansible-hoc命令行的相关文章

ansibles的hoc命令行

ansible Ansible:Ansible的核心程序 Python Paramiko Jiaja2 Yam1 Host Lnventory:记录了每一个由Ansible管理的主机信息,信息包括ssh端口,root帐号密码,ip地址等等.可以通过file来加载,可以通过CMDB加载Playbooks:YAML格式文件,多个任务定义在一个文件中,使用时可以统一调用,“剧本”用来定义那些主机需要调用那些模块来完成的功能.Core Modules:Ansible执行任何管理任务都不是由Ansible

ansible连载之ad-hoc命令行的使用

1. ansible 批量操作和配置管理:   在本篇博文中,主要讲解如下几个知识点和实践经验,供大家参考:   1. ansible 简介:   2. ansible 常用模块的使用:   3. ansible playbook的使用: 1. ansible 简介: 1.1 Ansible简介:  ansible是一个基于python开发的轻量级自动化运维管理工具,可以用来批量执行命令,安装程序,支持playbook编排.它通过ssh协议来连接主机,去中心化,相对比puppet和saltsta

Ansible系列命令用法详解与使用

Ansible系列命令用法与使用 在上一个文章中已经完成了Ansible的安装,这片文章主要的用来记录Ansible一些命令的用法详解及其使用场景.好了非话不多说,'上菜吧'. Ansible命令行执行方式有Ad-hoc.Ansible-playbook两种方式.Web化执行方式其官方提供了付费产品Tower(10台以内免费),个人的话可以基于API开发类似的Web化产品.此篇文章主要针对于Ad-hoc.Ansible-playbook两种方式做详细介绍. 什么是Ad-hoc.Ansible-p

ansible 常用命令

**# 使用此user的su执行操作,默认为root,已废弃,使用become替代 -b --become 使用become的方式升级权限 因为我们使用的是普通用户来操作** -i 目标主机列表 -m 指定模块名称 **ansible ping 模块** ansible -i /etc/ansible/ssh/hosts all -m ping -b **ansible copy 模块** -a 模块的参数或者命令 force=yes:用来强制取消软件安装过程中的交互确认提示 第一次使用时候 a

数据仓库之抽取数据:通过bcp命令行导入数据

原文:数据仓库之抽取数据:通过bcp命令行导入数据 在做数据仓库时,最重要的就是ETL的开发,而在ETL开发中的第一步,就是要从原OLTP系统中抽取数据到过渡区中,再对这个过渡区中的数据进行转换,最后把经过处理的干净的数据加载到数据仓库中. 目标数据库是sql server,通过bcp命令行导入数据.bcp方式相对于其他方式来说,速度更快,是做了优化的. 以下为bcp命令行常用的参数,注意大小写: -c  以char作为存储类型 -w  和-c类似,只有当使用unicode字符集拷贝数据时使用n

【Windows10 IoT开发系列】Powershell命令行实用程序

原文:[Windows10 IoT开发系列]Powershell命令行实用程序 更新帐户密码: 强烈建议你更新默认的管理员帐户密码.若要更新帐户密码,你可以发出以下命令: net user Administrator [new password]​ (其中 [new password] 表示你选择的强密码). 创建本地用户帐户: 如果你想要授予其他人访问你的 Windows IoT Core 设备的权限,你可以通过在 net user [username] [password] /add​ 中键

windows下cmd命令行显示UTF8字符设置(CHCP命令)

在中文windows系统中,如果一个文本文件是utf-8编码的,那么在cmd.exe命令行窗口(所谓的dos窗口)中不能正确显示文件中的内容.在默认情况下,命令行窗口中使用的代码页是中文或者美国的,即编码是中文字符集或者西文字符集. 如果想正确显示UTF-8字符,可以按照以下步骤操作: 1.打开CMD.exe命令行窗口 2.通过 chcp命令改变代码页,UTF-8的代码页为65001 1 chcp 65001 执行该操作后,代码页就被变成UTF-8了.但是,在窗口中仍旧不能正确显示UTF-8字符

CentOS设置默认启动命令行(不启动图形界面)

CentOS中如何进入图形界面和文字界面,Linux真正的服务器是不会运行图形化界面的,怎么样才能在不卸载桌面的前提下开机直接进入命令界面呢?(我安装的是CentOS 6.5)下面就简单介绍以下: 一.如果要进入图形界面: 1.首先得安装有图形界面,一般为X-window图形界面. 2.启动linux在终端下输入:startx 即可进入X11的图形操作界面. 二.在图形界面还可以在多个界面中进行切换: 在X-window图形操作界面中按"Alt+Ctrl+功能键Fn n=1~6 "就可

如何编写一个带命令行参数的Python文件

看到别人执行一个支持命令行参数的python文件,瞬间觉得高大上起来.牛逼起来,那么如何编写一个带命令行参数的python脚本呢?不用紧张,下面将简单易懂地让你学会如何让自己的python脚本,支持命令行参数. 首先你要知道python中的sys模块的一些功能: import sys print "the number of python program's argument:",len(sys.argv) print "the value of every argument