ansible第一天

文章介绍了Ansible作为一种自动化工具,用于批量管理系统配置和任务,通过YAML文件描述操作。它基于模块工作,通过SSH在管理节点和被管理节点间执行Python脚本。内容包括Ansible的工作原理,安装方法(yum和pip),以及配置文件如主配置文件和inventory文件的详细信息,如并发连接数、主机定义和变量设定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Day01 ansible

一.了解ansible概念

1.1Ansible简介

​ Ansible 是一种自动化工具,可以通过编写 YAML 文件来描述系统配置和管理任务,以便在多台服务器上批量执行操作。它提供了简单易用的语法,可以用来编写 playbooks 和 roles,以便自动化部署、配置、更新和管理多个服务器。
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。

2.Ansible的工作原理

在ansible管理体系中,存在“管理节点”和“被管理节点”两种角色,被管理节点通常被称为”资产“

​ 在管理节点,ansible将adhoc或者playbook转换为Python脚本,并通过ssh将这些Python脚本传递到被管理节点服务器上,在管理服务器上依次执行,并实时的将结果返回给管理节点。然后删除掉临时py文件。

3.ansible执行过程

1)加载配置文件位置,默认/etc/ansible/ansible.cfg

2)查找对应的主机配置文件,找到执行的主机或组,默认在/etc/ansible/hosts

3)加载对应的模块文件,没有就默认command

4)通过ansible将模块或命令生成对应的临时py脚本,将脚本传输到远程服务器

5)对应执行用户的家目录的.ansible/tmp/XXX/XXX.PY文件

6)给文件+x执行权限

7)执行脚本,返回结果

8)删除临时py脚本,退出

二.安装ansible

2.1yum安装

1)配置epel网络yum源

2)安装 #yum -y install ansible

2.2pip安装

yum install python-pip -y

pip install ansible

三.了解配置文件

3.1主配置文件

​ 通过yum安装的ansible 主配置文件为 /etc/ansible/ansible.cfg,下面我们列出一些常见的参数

inventory = /etc/ansible/hosts          # 这个参数表示资源清单inventory文件的位置
 library = /usr/share/ansible              # 指向存放Ansible模块的目录,支持多个目录方式,只要用冒号隔开就可以
 forks = 5                                              # 并发连接数,默认为5
 sudo_user = root                                # 设置默认执行命令的用户
 remote_port = 22                              # 指定连接被管节点的管理端口,默认为22端口
 host_key_checking = False               # 设置是否检查SSH主机的密钥,值为True/False。
 timeout = 60                                     # 设置SSH连接的超时时间,单位为秒
 log_path = /var/log/ansible.log      # 指定一个存储ansible日志的文件(默认不记录日志)

3.2inventory文件

​ 在 Ansible 中,inventory 文件是一种用于定义要管理的主机和组的文本文件。inventory 文件的主要作用是帮助 Ansible 管理和查找要配置的服务器。

​ 在 inventory 文件中,主机可以按照组的方式进行分组,并且每个组可以定义与这些主机相关的变量。这些变量可以在 playbook 中使用,以便在不同的主机和组之间实现差异化的配置和管理。

以下为常的配置方式

[webservers]
192.168.141.12 	 		#直接用IP定义
www.web3.com			#用域名定义
web4 ansible_ssh_host=192.168.141.14 #设置主机别名
www[1:5]				#支持通配符匹配
	www1,www2...www5
#为主机单独定义变量
[atlanta]
host1 http_port=80 #定义主机名host1有一个http_port变量,变量值为80
192.168.141.12 http_port=81 #定义IP192.168.141.12主机有一个http_port变量,变量值为81
#为一个组指定变量
[atlanta:vars]
ntp_server=ntp.atlant.com #定义atlanta组的每一个主机都有ntp_server= ntp.atlant.com这个变量
#组可以包含其他组
[aa]
host1
hosr2
[ab]
host3
host4
[southeast:children]
aa
ab
southeast组包含了[aa][ab]组,有host[1:4]主机

hosts文件内置变量:

参数用途例子
ansible_ssh_host定义hosts ssh 地址ansible_ssh_host=192.168.141.12
ansible_ssh_portssh 端口ansible_ssh_port=3000
ansible_ssh_user认证用户ansible_ssh_user=user
ansible_ssh_pass认证密码ansible_ssh_pass=123
ansible_sudosudo用户ansible_sudo=www
ansible_sudo_passsudo 密码ansible_sudo_pass=123
ansible_sudo_exesudo 路径ansible_sudo_exe=/usr/bin/suod
ansible_connection定义hosts连接方式ansible_connection=local
ansible_ssh_private_key_file定义私钥ansible_ssh_private_key_file=、root/key
ansible_python_interpreter任务执行Python路径ansible_python_interpreter=/usrbin/python2.
ansible_ssh_shell_typeshell 类型ansible_ssh_shell_type=bash
ansible_*_interpreter其他语言解析路径ansible_*_interpreter=/usr/bin/ruby
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值