摘要: absible 部署安装
#一、概述
运维工具按需不需要有代理程序来划分的话分两类:
agent(需要有代理工具):基于专用的agent程序完成管理功能,puppet, func, zabbix
agentless(无须代理工具):基于ssh服务完成管理,ansible, fabric
#二、简介
Ansible是一个简单的自动化运维管理工具,基于Python语言实现,由Paramiko和PyYAML两个关键模块构建,可用于自动化部署应用、配置、编排task(持续交付、无宕机更新等)。主版本大概每2个月发布一次。
Ansible与Saltstack最大的区别是Ansible无需在被控主机部署任何客户端代理,默认直接通过SSH通道进行远程命令执行或下发配置:相同点是都具备功能强大、灵活的系统管理、状态配置,两者都提供丰富的模板及API,对云计算平台、大数据都有很好的支持。
1.特点
部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作; 默认使用SSH协议对设备进行管理;
主从集中化管理;
配置简单、功能强大、扩展性强;
支持API及自定义模块,可通过Python轻松扩展;
通过Playbooks来定制强大的配置、状态管理;
对云计算平台、大数据都有很好的支持;
提供一个功能强大、操作性强的Web管理界面和REST API接口——AWX平台。
幂等性:一种操作重复多次结果相同
简评:
(1)、轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;
(2)、批量任务执行可以写成脚本,而且不用分发到远程就可以执行;
(3)、使用python编写,维护更简单,ruby语法过于复杂;
(4)、支持sudo。
2、Ansible架构图
QQ_20170524110419
Ansible核心组件说明:
Ansible:Ansible的核心程序
Host Lnventory:记录了每一个由Ansible管理的主机信息,信息包括ssh端口,root帐号密码,ip地址等等。可以通过file来加载,可以通过CMDB加载
Playbooks:YAML格式文件,多个任务定义在一个文件中,使用时可以统一调用,“剧本”用来定义那些主机需要调用那些模块来完成的功能.
Core Modules:Ansible执行任何管理任务都不是由Ansible自己完成,而是由核心模块完成;Ansible管理主机之前,先调用core Modules中的模块,然后指明管理Host Lnventory中的主机,就可以完成管理主机。
Custom Modules:自定义模块,完成Ansible核心模块无法完成的功能,此模块支持任何语言编写。
Connection Plugins:连接插件,Ansible和Host通信使用
3、ansible执行过程,其中暖色调的代表已经模块化。
screenshot
三、基础环境的安装与配置
1、ssh免密登录 配置 一直回车
```ssh-keygen -N ''
2、shell脚本复制到101-150服务器
```for i in `seq 101 150`
do
/usr/bin/expect << EOF
spawn ssh-copy-id bfadmin@192.168.100.$i
expect {
"yes/no" { send "yes\r"; exp_continue; }
"*password" { send "P@ssw0rd\r" }
}
expect "~$ "
send "exit\r"
expect eof
EOF
done
3、安装Ansible 环境 及pssh 环境包
sudo sed -i -re 's/\w+\.archive\.ubuntu\.com/archive.ubuntu.com/g' /etc/apt/sources.list
sudo apt-get update
sudo wget http://www.theether.org/pssh/pssh-1.4.3.tar.gz #下载PSSH安装包
tar zxvf pssh-1.4.3.tar.gz
cd pssh-1.4.3
sudo wget 'http://peak.telecommunity.com/dist/ez_setup.py'
sudo python ez_setup.py
sudo python setup.py install
sudo apt-get install software-properties-common
sudo apt-add-repository ppa:ansible/ansible
sudo apt-get install ansible
4.配置文件
/etc/ansible/ansible.cfg
host_key_checking = False
5.主机清单
/etc/ansible/hosts
6.ansible命令的使用说明
常用选项
ansible -m MOD_NAME -a MOD_ARGS
表示调用什么模块,使用模块的那些参数
ansible -h
[root@localhost ~]# ansible -h
Usage: ansible [options]
Options:
-a MODULE_ARGS, --args=MODULE_ARGS 模块的参数,如果执行默认COMMAND的模块,即是命令参数,如:“date”,"pwd"等等
module arguments 模块参数
-k, --ask-pass ask for SSH password 登录密码,提示输入SSH密码而不是假设基于密钥的验证
--ask-su-pass ask for su password su切换密码
-K, --ask-sudo-pass ask for sudo password 提示密码使用sudo,sudo表示提权操作
--ask-vault-pass ask for vault password
-B SECONDS, --background=SECONDS 后台运行超时时间
run asynchronously, failing after X seconds
(default=N/A)
-C, --check don't make any changes; instead, try to predict some 只是测试一下会改变什么内容,不会真正去执行;相反,试图预测一些可能发生的变化
of the changes that may occur
-c CONNECTION, --connection=CONNECTION 连接类型使用。可能的选项是paramiko(SSH),SSH和地方。当地主要是用于crontab或启动。
connection type to use (default=smart)
-f FORKS, --forks=FORKS 并行任务数。NUM被指定为一个整数,默认是5
specify number of parallel processes to use
(default=5)
-h, --help show this help message and exit 打开帮助文档API
-i INVENTORY, --inventory-file=INVENTORY 指定库存主机文件的路径,默认为/etc/ansible/hosts
specify inventory host file
(default=/etc/ansible/hosts)
-l SUBSET, --limit=SUBSET 进一步限制所选主机/组模式 --limit=192.168.91.135 只对这个ip执行
further limit selected hosts to an additional pattern
--list-hosts outputs a list of matching hosts; does not execute
anything else
-m MODULE_NAME, --module-name=MODULE_NAME 执行模块的名字,默认使用 command 模块,所以如果是只执行单一命令可以不用 -m参数
module name to execute (default=command)
-M MODULE_PATH, --module-path=MODULE_PATH 要执行的模块的路径,默认为/usr/share/ansible/
specify path(s) to module library
(default=/usr/share/ansible/)
-o, --one-line condense output 压缩输出,摘要输出.尝试一切都在一行上输出。
-P POLL_INTERVAL, --poll=POLL_INTERVAL 调查背景工作每隔数秒。需要- b
set the poll interval if using -B (default=15)
--private-key=PRIVATE_KEY_FILE 私钥路径,使用这个文件来验证连接
use this file to authenticate the connection
-S, --su run operations with su 用 su 命令
-R SU_USER, --su-user=SU_USER 指定SU的用户,默认是root用户
run operations with su as this user (default=root)
-s, --sudo run operations with sudo (nopasswd)
-U SUDO_USER, --sudo-user=SUDO_USER sudo到哪个用户,默认为 root
desired sudo user (default=root)
-T TIMEOUT, --timeout=TIMEOUT 指定SSH默认超时时间, 默认是10S
override the SSH timeout in seconds (default=10)
-t TREE, --tree=TREE log output to this directory 将日志内容保存在该输出目录,结果保存在一个文件中在每台主机上。
-u REMOTE_USER, --user=REMOTE_USER 远程用户, 默认是root用户
connect as this user (default=root)
--vault-password-file=VAULT_PASSWORD_FILE
vault password file
-v, --verbose verbose mode (-vvv for more, -vvvv to enable 详细信息
connection debugging)
--version show program's version number and exit 输出ansible的版本
分享到:
相关推荐
Semaphore 是一个强大的自动化部署工具,它使用 Ansible 来实现对多主机的配置管理。Ansible 是一个流行的 IT 自动化框架,它允许管理员通过编写 YAML 格式的 Playbook 来执行任务,如软件部署、配置管理和应用生命...
通过以上内容,读者不仅能够了解Ansible的基本原理和使用方法,还能学会如何优化Ansible的配置,以适应不同的场景需求。这为运维人员提供了强大的工具,帮助他们在实际工作中更加高效地管理复杂的IT环境。
以下是关于如何在无网络环境下在CentOS 7上安装Ansible及其所有依赖的详细步骤。 首先,我们要理解Ansible是什么。Ansible是一款自动化工具,用于配置管理、应用部署、任务执行和工作流自动化。它采用基于代理的...
- 实验环境中通常使用`yum install ansible -y`命令安装。 - 配置文件位于`/etc/ansible/ansible.cfg`,而`inventory`文件则位于`/etc/ansible/hosts`。 - **配置**: - 安装完成后,需要配置Ansible以使用密钥...
本示例中,我们关注的是如何使用Ansible自动部署VMware虚拟化服务器,结合了“vcenter.yml”、“myvars.yml”和“vcenterinfo.yml”三个配置文件,这些都是Ansible Playbook的标准组成部分。 首先,`vcenter.yml`是...
总的来说,这个压缩包提供了一种方便的方法,在离线且特定于ARM64架构的Debian 10 UOS 20环境中安装和使用Ansible 2.7。用户只需要遵循简单的步骤,就可以在无网络连接的情况下实现自动化管理工具的部署。
【描述】提到的"内有30个视频加带课程代码rar"表明这是一个详细的教程,旨在教你如何利用Jenkins、Ansible和Gitlab进行自动化部署。这个教程可能包含了从基础概念到实践操作的全过程,通过视频教学和配套代码帮助...
1. **简化部署流程**:通过使用Ansible Playbooks,可以将复杂的部署步骤封装成一系列可重复执行的任务,大大简化了Ambari部署的过程。 2. **提高效率与准确性**:自动化部署不仅可以节省大量手动操作的时间,还可以...
Ansible Tower 3.0 中文安装配置及使用指南是一份详细的文档,用于指导用户如何安装、配置和使用Ansible Tower 3.0版本。Ansible Tower是基于Web的IT自动化平台,它为Ansible自动化工具提供了一个更加友好、易于管理...
总结来说,Ansible的离线安装文档详细说明了如何在没有互联网连接的环境下安装和配置Ansible。该过程涉及到手动下载和准备所需的软件包,通过脚本一次性安装,配置免密钥SSH登录以及拷贝配置文件等步骤。通过这个...
本教程将详细讲解如何使用Ansible来安装Zookeeper,一个分布式协调服务,常用于管理Apache Hadoop和其他大数据组件。 **一、Ansible简介** Ansible是一款基于Python的自动化工具,它采用无代理的方式工作,通过SSH...
本资源提供了在CentOS 7.4环境下Ansible的离线安装方法,这对于网络环境不稳定或者不允许在线更新的环境来说尤其重要。下面将详细介绍如何进行离线安装以及需要注意的关键知识点。 首先,离线安装Ansible需要准备...
1. **环境准备**:确保所有节点(master和worker节点)上已安装了Ansible,以及满足K8s部署所需的软件包,如Docker、kubelet、kubeadm等。这些可以通过Ansible的yum或apt模块进行安装。 2. **创建Ansible inventory...
本篇将详细讲解如何在Linux环境下,通过提供的`install.sh`脚本来离线安装Ansible 2.9.9,以及该过程中涉及的基本依赖包。 首先,让我们了解Ansible的基本概念。Ansible是一款基于Python的语言编写的自动化工具,其...
总之,k3s-ansible项目提供了一种高效且可扩展的方法来部署和管理k3s集群。通过结合Ansible的自动化能力与k3s的轻量化特性,用户可以在各种环境中快速部署和维护Kubernetes集群,无论是传统的数据中心还是边缘计算的...
5. **监控和扩展** - 部署完成后,你可以使用`ceph-ansible`进行监控和维护,例如添加新的OSD节点或调整集群配置。 **总结** `ceph-ansible`项目为Ceph的部署和管理提供了强大的自动化工具,结合了Ceph的高效存储...
在这个场景下,"kubernetes centos ansible playbook 安装 国内镜像源"描述了一个使用Ansible Playbook在CentOS系统上安装Kubernetes,并利用国内镜像源加速下载过程的过程。 首先,让我们详细探讨一下每个组成部分...
在“Ansible-ansible-grafana.zip”这个压缩包中,我们可以看到与使用Ansible自动化部署和配置Grafana相关的资源。Grafana是一款流行的数据可视化和分析平台,常用于监控和分析系统性能指标。通过Ansible,我们可以...
在IT行业中,Ansible是一款强大的自动化工具,尤其适用于配置管理和应用程序部署。对于 CentOS 7 这样的Linux操作系统,Ansible提供了简单易用的接口来管理服务器集群,无需在目标主机上安装任何代理。本篇文章将...