linux批量管理工具之ansible

本文详细介绍了如何使用Ansible进行Linux批量管理,包括安装、命令与选项、常用模块、playbook配置和角色定义。重点讲解了hosts文件语法、自定义连接、变量与条件测试的使用,以及如何通过playbook实现自动化任务,如创建用户、安装服务、配置文件管理和服务控制等。
摘要由CSDN通过智能技术生成

准备(前戏)

安装

yum install ansible

查看与ansible相关的文件信息

rpm -ql ansible|less

命令与选项

hosts基本语法

主机与组

[webserver]
www.exaple.com
test.exaple.com

[dbserver]
one.example.com
two.example.com

备注:端口号不是默认的时候,可以表示为

www.exaple.com:5122

主机别名

如果有些静态IP地址,希望设置一些别名,但不是在系统的host文件中做解析

test_name ansible_ssh_port=5122 ansible_ssh_host=192.168.100.1

主机名扩展

可以像bash那样设置一组名称类似的主机

[webserver]
web[01:50].example.com
db-[a:f].example.com

自定连接

对于每一个host,还可以选择连接类型和连接用户名

[targets]
other1.example.com ansible_connection=ssh ansible_ssh_user=sam
other2.example.com ansible_connection=ssh ansible_ssh_user=mdehaan

主机变量

在hosts中给主机设置变量,这样可以在playbook中使用

[web]
host1 http_port=80  maxRequestsPerChild=808
host2 http_port=303 maxRequestsPerChild=909

组变量

通过关键字vars

[webserver]
host1
host2

[webserver:vars]
ntp_server=ntp.atlanta.example.com
proxy=proxy.atlanta.example.com

把一个组作为另个组的子成员

[webserver]
host1
host2

[dbserver]
host3
host4

[saas:children]
webserver
dbserver

[saas:vars]
some_server=foo.southeast.example.com
halon_system_timeout=30
self_destruct_countdown=60
escape_pods=2

Inventory参数说明

要连接的远程主机与设定的主机别名不同时

ansible_ssh_host

指定ssh端口号

ansible_ssh_port

指定连接用户名

ansible_ssh_user

指定连接密码(建议使用--ask-pass)

ansible_ssh_pass

指定sudo密码(建议--ask-sudo-pass)

ansibl_sudo_pass

指定sudo执行命令的路径

ansible_sudo_exe

指定与主机的连接类型

ansible_connection

使用指定密钥文件

ansible_privte_key_file

指定目标系统的shell类型

ansible_shell_type

指定目标主机的python路径(相同的方式可以指定ruby、perl)

ansible_python_interpreter

常用指令与选项

ansible

-u                            # 指定用户名
-k                            # 提示密码
-i                            # 使用指定主机清单
-m                            # 使用指定module,默认command
-a                            # module参数

ansible-doc

-l                        # 列出所有module
-s                        # 列出指定模块的使用方法

常用模块及使用方法

(1)配置hosts文件

[webserver]
192.168.100.131
192.168.100.132

[dbserver]
192.168.100.133

(2)配置ansible主机与个客户机间密钥认证(这里直接使用copy模块完成)

copy模块

ansible all -m copy -a 'src="/root/.ssh/id_rsa.pub" dest="/root/.ssh/authorized_keys" mode=600 backup="yes"' --ask-pass

说明:
src                            # 源文件或文件夹(如果是源文件以/结尾,则只拷贝该目录下的内容)
dest                           # 目标文件或目录(父目录不存在时会报错)
mode                           # 权
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值