文档章节

ansible基础

eddy_linux
 eddy_linux
发布于 2015/11/17 16:43
字数 1036
阅读 121
收藏 1
点赞 0
评论 0
1.安装
系统:CentOS release 6.5 (Final)
yum install ansible

2.免密码登录
	ssh-keygen
	cat id_rsa.pub >> authorized_keys

3.主机目录
	vim /etc/ansible/hosts 
		[eddy]
		 eddy
	[targets]
	localhost ansible_connection=local
	other1.example.com ansible_connection=ssh ansible_ssh_user=mpdehaan
	other2.example.com ansible_connection=ssh ansible_ssh_user=mdehaan
	[atlanta]
	ost1 http_port=80 maxRequestsPerChild=808
	ost2 http_port=303 maxRequestsPerChild=909
也可以为一个组指定变量,组内每个主机都可以使用该变量:
	[atlanta]
	ost1
	ost2
	[atlanta:vars]
	tp_server=ntp.atlanta.example.com
	roxy=proxy.atlanta.example.com
组可以包含其他组:
	[atlanta]
	ost1
	ost2
	[raleigh]
	ost2
	ost3
	[southeast:children]
	tlanta
	aleigh
	[southeast:vars]
	ome_server=foo.southeast.example.com
	alon_system_timeout=30
	elf_destruct_countdown=60
	scape_pods=2
	[usa:children]
	outheast
	ortheast
	outhwest
	orthwest
可以为每个主机单独指定一些变量,这些变量随后可以在playbooks 中使用:	 
4.配置文件修改
	vim /etc/ansible/ansible.cfg
		[defaults]
		inventory      = /etc/ansible/hosts
		remote_tmp     = $HOME/.ansible/tmp
		pattern        = *
		forks          = 5
		poll_interval  = 15
		transport      = smart
		remote_port    = 6666
		module_lang    = C
		
		gathering = implicit
		#roles_path    = /etc/ansible/roles
		host_key_checking = False
		sudo_exe = sudo
		timeout = 10
		remote_user = root
		log_path = /var/log/ansible.log
		ansible_managed = Ansible managed: {file} modified on %Y-%m-%d %H:%M:%S by {uid} on {host}
		action_plugins     = /usr/share/ansible_plugins/action_plugins
		callback_plugins   = /usr/share/ansible_plugins/callback_plugins
		connection_plugins = /usr/share/ansible_plugins/connection_plugins
		lookup_plugins     = /usr/share/ansible_plugins/lookup_plugins
		vars_plugins       = /usr/share/ansible_plugins/vars_plugins
		filter_plugins     = /usr/share/ansible_plugins/filter_plugins
		fact_caching = memory
		[privilege_escalation]
		[paramiko_connection]
		[ssh_connection]
		pipelining = on
		[accelerate]
		accelerate_port = 5099
		accelerate_timeout = 30
		accelerate_connect_timeout = 5.0
		accelerate_daemon_timeout = 30 
		[selinux]

5.ansible指令参数
Usage: ansible <host-pattern> [options]
Options:
-m MODULE_NAME, --module-name=MODULE_NAME 要执行的模块,默认为comm
and
-a MODULE_ARGS, --args=MODULE_ARGS 模块的参数
-u REMOTE_USER, --user=REMOTE_USER ssh 连接的用户名,默认用roo
t,ansible.cfg 中可以配置
-k, --ask-pass 提示输入ssh 登录密码,当使用密码验证登录的时候用
-s, --sudo sudo 运行
-U SUDO_USER, --sudo-user=SUDO_USER sudo 到哪个用户,默认为root
-K, --ask-sudo-pass 提示输入sudo 密码,当不是NOPASSWD 模式时使用
-B SECONDS, --background=SECONDS run asynchronously, failing
after X seconds(default=N/A)
-P POLL_INTERVAL, --poll=POLL_INTERVAL set the poll interval if using
-B (default=15)
-C, --check 只是测试一下会改变什么内容,不会真正去执行
-c CONNECTION 连接类型(default=smart)
-f FORKS, --forks=FORKS fork 多少个进程并发处理,默认5
-i INVENTORY, --inventory-file=INVENTORY 指定hosts 文件路径,默认default
=/etc/ansible/hosts
-l SUBSET, --limit=SUBSET 指定一个pattern,对<host_pattern>已经匹配的主机
中再过滤一次
--list-hosts 只打印有哪些主机会执行这个playbook 文件,不是实际执行该playboo
-M MODULE_PATH, --module-path=MODULE_PATH 要执行的模块的路径,默认
为/usr/share/ansible/
-o, --one-line 压缩输出,摘要输出
--private-key=PRIVATE_KEY_FILE 私钥路径
-T TIMEOUT, --timeout=TIMEOUT ssh 连接超时时间,默认10 秒
-t TREE, --tree=TREE 日志输出到该目录,日志文件名会以主机名命名
-v, --verbose verbose mode (-vvv for more, -vvvv to enable connection debu
gging)


6.ansible 目录结构
/etc/ansible/hosts 主机定义
/etc/ansible/host_vars/all 			#host_vars 目录用于存放host 变量,all 文件对所有主机有效
/etc/ansible/group_vars/all 		#group_vars 目录用于存放group 变量,all 文件对所有组有效
/etc/ansible/host_vars/foosball 	#文件foosball 要和hosts 里面定义的主机名一样,表示只对foosball 主机有效
/etc/ansible/group_vars/raleigh 	#文件raleigh 要和hosts 里面定义的组名一样,表示对raleigh 组下的所有主机有效

这里/etc/ansible/group_vars/raleigh 格式如下:
--- #YAML 格式要求
ntp_server: acme.example.org #变量名:变量值
database_server: storage.example.org
注意:官方建议将/etc/ansible 目录使用git/svn 来进行版本控制便于跟踪和修改

hosts 文件支持一些特定指令,上面已经使用了其中几个,所有支持的指令如下:
ansible_ssh_host:指定主机别名对应的真实IP,如:251 ansible_ssh_host=183.60.41.251,随后连接该主机无须指定完整IP,只需指定251 就行
ansible_ssh_port:指定连接到这个主机的ssh 端口,默认22
ansible_ssh_user:连接到该主机的ssh 用户
ansible_ssh_pass:连接到该主机的ssh 密码(连-k 选项都省了),安全考虑还是建议使用私钥或在命令行指定-k 选项输入
ansible_sudo_pass:sudo 密码
ansible_sudo_exe(v1.8+的新特性):sudo 命令路径
ansible_connection:连接类型,可以是local、ssh 或paramiko,ansible1.2 之前默认为paramiko
ansible_ssh_private_key_file:私钥文件路径
ansible_shell_type:目标系统的shell 类型,默认为sh,如果设置csh/fish,那么命令需要遵循它们语法
ansible_python_interpreter:python 解释器路径,默认是/usr/bin/python,但是如要要连*BSD系统的话,就需要该指令修改python 路径


© 著作权归作者所有

共有 人打赏支持
eddy_linux
粉丝 18
博文 135
码字总数 188789
作品 0
成都
程序员
离线网络环境下一键式部署

关键词 封闭网络:一个相对封闭的网络环境,仅可以使用有限的资源如:maven镜像仓库、Centos/Ubuntu源等,无法连接互联网的网络环境。 一键部署:这里所说的“一键式部署”不仅仅是指这样的场...

ThoughtWorks中国
2017/12/29
0
0
ansible--基础

马哥出品 ansible中文文档:http://www.ansible.com.cn/index.html ansible介绍: ansible是个什么东西呢?官方的title是“Ansible is Simple IT Automation”——简单的自动化IT运维管理工具...

Gavin7216
2017/07/05
0
0
Ansible dockerimage docker模块使用记录

ansible docker dockerimage 使用官方文档 docker: http://docs.ansible.com/ansible/docker_module.html dokcer image: http://docs.ansible.com/ansible/dockerimage_module.html #ansibl......

zrer90
07/01
0
0
ansible源码安装教程

ansible源码安装教程 ========================================================================================== 一、基础介绍 ====================================================......

520逍遥
2017/10/18
0
0
Red Hat 宣布​收购开源软件公司 Ansible

红帽(Red Hat)宣布收购软件开发公司 Ansible,消息称此次收购耗资逾 1亿美元,也有消息称接近 1.5亿美元。 Ansible 成立于 2013年,总部设在北卡罗来纳州达勒姆,联合创始人 aïd Ziouani...

oschina
2015/10/17
4.8K
10
ansible 自动化基础

ansible工具 特性 (1)、no agents:不需要在被管控主机上安装任何客户端; (2)、no server:无服务器端,使用时直接运行命令即可; (3)、modules in any languages:基于模块工作,可使用任意...

super李导
2017/04/11
0
0
ansible基础—安装与常用模块

ansible介绍: ansible是一个基于python开发的轻量级自动化运维管理工具,可以用来批量执行命令,安装程序,支持playbook编排。它通过ssh协议来连接主机,省去了在每一台主机安装客户端的麻烦...

icenycmh
2016/12/08
0
0
OSC 第 121 期高手问答 -- Ansible 自动化运维:技术与最佳实践

OSCHINA 本期高手问答(7月19日- 7月27日) 我们请来了@jimchen010 (陈金窗)、@沈灿 、@老瓦房 (刘政委) 为大家解答关于Ansible自动化运维:技术与最佳实践方面的问题。 @jimchen010 (陈金...

催呀催呀
2016/07/19
4.3K
48
Red Hat 发布 Ansible 2.3,新增网络自动化功能

世界领先的开源解决方案供应商红帽公司(NYSE:RHT)宣布发布 Ansible2.3,简单、功能强大。Ansible 成立于 2013年,在2015年被红帽收购,开源软件 Ansible 就是Ansible 旗下的十分流行的一个...

达尔文
2017/04/13
1K
10
ansible puppet saltstack三款自动化运维工具的对比

一、基础介绍 ansible基础介绍可参考:http://kaliarch.blog.51cto.com/8966921/1971185 puppet基础介绍可参考:http://kaliarch.blog.51cto.com/8966921/1973736 saltstack基础介绍可参考:...

KaliArch
2017/10/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

实现异步有哪些方法

有哪些方法可以实现异步呢? 方式一:java 线程池 示例: @Test public final void test_ThreadPool() throws InterruptedException { ScheduledThreadPoolExecutor scheduledThre......

黄威
今天
0
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

六库科技
今天
0
0
牛客网刷题

1. 二维数组中的查找(难度:易) 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入...

大不了敲一辈子代码
今天
0
0
linux系统的任务计划、服务管理

linux任务计划cron 在linux下,有时候要在我们不在的时候执行一项命令,或启动一个脚本,可以使用任务计划cron功能。 任务计划要用crontab命令完成 选项: -u 指定某个用户,不加-u表示当前用...

黄昏残影
昨天
0
0
设计模式:单例模式

单例模式的定义是确保某个类在任何情况下都只有一个实例,并且需要提供一个全局的访问点供调用者访问该实例的一种模式。 实现以上模式基于以下必须遵守的两点: 1.构造方法私有化 2.提供一个...

人觉非常君
昨天
0
0
《Linux Perf Master》Edition 0.4 发布

在线阅读:https://riboseyim.gitbook.io/perf 在线阅读:https://www.gitbook.com/book/riboseyim/linux-perf-master/details 百度网盘【pdf、mobi、ePub】:https://pan.baidu.com/s/1C20T......

RiboseYim
昨天
1
0
conda 换源

https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mir......

阿豪boy
昨天
1
0
Confluence 6 安装补丁类文件

Atlassian 支持或者 Atlassian 缺陷修复小组可能针对有一些关键问题会提供补丁来解决这些问题,但是这些问题还没有放到下一个更新版本中。这些问题将会使用 Class 类文件同时在官方 Jira bug...

honeymose
昨天
0
0
非常实用的IDEA插件之总结

1、Alibaba Java Coding Guidelines 经过247天的持续研发,阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的《阿里巴巴Java开发规约》扫描插件!该插件由阿里巴巴P3C项目组研发。P3C...

Gibbons
昨天
1
0
Tomcat介绍,安装jdk,安装tomcat,配置Tomcat监听80端口

Tomcat介绍 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。 java程序写的网站用tomcat+jdk来运行...

TaoXu
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部