Ansible教程(1)Ansible的安装与基本使用

Ansible教程(1)Ansible的安装与基本使用

一、Ansible简介

Ansible是一个基于Python开发的轻量级自动化运维工具,有着其他自动化运维工具如puppet、cfengine、chef、func、fabric的优点,并且不需要单独安装客户端以及启动服务,只需要通过SSH就可以快速的对大量客户端实现批量系统配置、程序部署、批量运行命令等。而且Ansible的学习曲线也平缓,比puppet易学很多

二、安装Ansible

方法1(推荐):YUM安装

对于Ansible这种工具性软件使用YUM安装是最方便的,只需要配置好EPEL仓库就可以一条命令安装

yum install ansible -y #yum安装最新版
ansible --version  #安装后查看版本以及模块路径等信息


方法2:通过python pip工具安装

该方法需要先编译安装好python3,安装好以后Ansible的命令都会放在Python的目录中 

/usr/local/python3/bin/pip3 install ansible==2.7  #使用pip安装指定版本Ansible
ln -s /usr/local/python3/bin/ansible /usr/local/bin


三、Ansible配置文件

· /etc/ansible/hosts

主机列表清单,也叫Inventory。所有被管理的主机都需要定义在该文件中。如果不想使用默认清单的话可以用-i选项指定自定义的清单文件,防止多人混合使用一个主机清单。如果没有定义在主机列表文件中,执行命令会提示“No hosts matched”

· /etc/ansible/ansible.cfg

Ansible服务主配置文件,可以自定义Inventory文件、并发数等,该配置文件的优先级实际是最低的,如果有定义其他配置文件,可以通过ansible --version查看实际有效路径


四、Inventory定义方法

方法1:为不同的主机组配置各自的主机IP、端口、用户名、密码信息

#编辑配置清单文件
vim /etc/ansible/hosts

#组名为webserver,并且为该组下的主机配置了各自的端口、root信息
[webserver]  
192.168.1.31 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass="123456"
192.168.1.32 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass="123456"
192.168.1.33 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass="123456"
192.168.1.36 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass="123456"

#组名为dbserver,并且使用了表达式来表示连续的IP段
[dbserver]  
192.168.1.4[1:3] ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass="123456"  

[redis]
192.168.1.5[1:3]
[redisserver:vars]  #将信息定义为变量
ansible_ssh_pass="123456"

[nginx] #推荐写法
nginx_1 ansible_ssh_host=192.168.1.61 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass="123456"
nginx_2 ansible_ssh_host=192.168.1.62 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass="123456"


ansible1.png


方法二:基于秘钥管理

基于秘钥管理客户端的话需要在管理端创建公钥和私钥,然后发送给被管理端的机器

#管理端创建秘钥并发送到每个被管理端
ssh-keygen
ssh-copy-id -i $被管理端IP

#管理端清单文件
vim /etc/ansible/hosts
[webserver]  #做好秘钥的机器只用写IP即可
192.168.1.31:22
192.168.1.32
192.168.1.33
192.168.1.36

[dbserver]  #也可以通过别名方式进行配置
node1 ansible_ssh_host=192.168.1.31 ansible_ssh_port=22
node2 ansible_ssh_host=192.168.1.32 ansible_ssh_port=22
node3 ansible_ssh_host=192.168.1.33 ansible_ssh_port=22



方法三:自定义Inventory清单文件

#创建清单文件
vim /etc/ansible/dockers
[dockers]
192.168.1.31 ansible_ssh_pass='123456'
192.168.1.32
192.168.1.33
#使用-i指定清单文件
ansible dockers -m ping -i /etc/dockers


五、Inventory内置参数

ansible2.png

文章评论

猜你喜欢

Ansible教程(3)使用Playbook进行多任务编排

运维技术 Ansible教程(3)使用Playbook进行多任务编排

一、Ansible Playbook介绍如果基于AD-Hoc去执行多任务(如安装Nginx、修改配置文件、启动服务),需要先使用yum或command模块安装程序,再使用copy模块复制配置...

Ansible教程(2)Ansible的命令行与常用模块

运维技术 Ansible教程(2)Ansible的命令行与常用模块

一、Ansible Ad-Hoc简介Ad-Hoc是一种通过ansible内置命令行让Ansible进行工作的方式,也是最简单的调用方式。命令行语法格式如下ansible <host-p...

运维技术 基准性能测试工具sysbench使用教程

基准性能测试工具sysbench使用教程
基准性能测试工具sysbench使用教程
基准性能测试工具sysbench使用教程
基准性能测试工具sysbench使用教程

一、sysbench介绍sysbench是一个开源的多线程性能测试工具,广泛用于对操作系统整体性能和数据库(主要为 MySQL 和 PostgreSQL)进行基准测试。该工具提供了大量lua脚本可用于...

NTP时间同步服务配置教程

运维技术 NTP时间同步服务配置教程

一、什么是NTP时间同步NTP是网络时间协议Network Time Protocol的简称。通过 NTP 服务可以确保不同设备或者服务之间的时间一致性,尤其是一些高可用或集群化的服务,节点之间的时间...