Linux 源码安装Ansible 参考篇
Ansible 源码搭建配置
近期在学习自动化运维相关技术,文章主要模拟内网情况下对Ansible的安装演示,源码安装较为繁琐、枯燥,尤其是在实际安装过程中可能出现各式各样的问题,所有在安装过程中尽量保持与我演示的环境、安装版本一致。
1.环境准备
实验服务器准备
# 服务器端
192.168.238.134
# 被控端
192.168.238.135
192.168.238.136
系统版本
cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
内核版本
uname -r
3.10.0-1160.31.1.el7.x86_64
准备依赖包环境
安装python-devel和openssl-devel
yum -y install python-devel openssl-devel libffi-devel
下载源码包文件到自定义文件目录
https://releases.ansible.com/ansible/ (ansible 官网下载地址)
https://pypi.org/ (模块包下载地址)

2.ansible 基本架构图

2.1Ansible架构简介
1.主机群(Host Inventory):定义ansible管理的主机
2.剧本(Playbooks):ansible的任务配置文件,将多个任务定义在剧本中,由ansible自动执行
3.核心模块 (core modules)连接主机实现操作,它依赖于具体的模块来做具体的事情
4.扩展模块 (custom modules),根据自己的需求编写具体的模块
5.插件(Plugins):完成模块功能的补充
6.连接插件(Connectior Plugins):ansible基于连接插件连接到各个主机上,虽然ansible是使用ssh连接到各个主机的,但是它还支持其他的连接方法,所以需要有连接插件
2.1Ansible 特点
1.不需要代理,不需要客户端
2.没有服务器端,使用时直接使用命令
3.基于模块工作
4.默认基于ssh工作
5.支持YAML定义剧本
3.依次解压、安装源码包文件
注:安装过程中请依次进行如下顺序安装
安装 setuptools
unzip setuptools-41.0.1.zip
cd setuptools-41.0.1
python setup.py install
安装pycrypto
tar -xzf pycrypto-2.6.1.tar.gz
cd pycrypto-2.6.1
python setup.py install
安装 PyYAML
tar -xzf PyYAML-5.1.tar.gz
cd PyYAML-5.1
python setup.py install
安装MarkupSafe
tar -xzf MarkupSafe-1.1.1.tar.gz
cd MarkupSafe-1.1.1
python setup.py install
安装Jinja2
tar -xzf Jinja2-2.10.1.tar.gz
cd Jinja2-2.10.1
python setup.py install
安装ecdsa
tar -xzf ecdsa-0.13.2.tar.gz
cd ecdsa-0.13.2
python setup.py install
安装simplejson
tar -xzf simplejson-3.16.0.tar.gz
cd simplejson-3.16.0
python setup.py install
安装pycparser
tar -xzf pycparser-2.19.tar.gz
cd pycparser-2.19
python setup.py install
安装cffi
tar -xzf cffi-1.12.3.tar.gz
cd cffi-1.12.3
python setup.py install
安装ipaddress
tar -xzf ipaddress-1.0.22.tar.gz
cd ipaddress-1.0.22
python setup.py install
安装six
tar -xzf six-1.12.0.tar.gz
cd six-1.12.0
python setup.py install
安装asn1crypto
tar -xzf asn1crypto-0.24.0.tar.gz
cd asn1crypto-0.24.0
python setup.py install
安装pyasn1
tar -xzf pyasn1-0.4.5.tar.gz
cd pyasn1-0.4.5
python setup.py install
安装PyNaCl
tar -xzf PyNaCl-1.3.0.tar.gz
cd PyNaCl-1.3.0
python setup.py install
安装cryptography
tar -xzf cryptography-2.6.1.tar.gz
cd cryptography-2.6.1
python setup.py install
安装paramiko
tar -xzf paramiko-2.4.2.tar.gz
cd paramiko-2.4.2
python setup.py install
安装ansible
tar -xzf ansible-latest.tar.gz
cd ansible-2.7.10/
python setup.py install
安装完成后,检查查看ansible版本
ansible --version

4.生成密钥文件配置主机互信
ssh-keygen -t rsa
# 执行上述命令无需进行其它操作,一直点击Enter键即可
注:生成之后会在用户的根目录生成一个 “.ssh”的文件夹(使用 ls -a或 ll -a 命令可查看)

文件说明:
id_rsa : 生成的私钥文件
id_rsa.pub :生成的公钥文件
know_hosts : 已知的主机公钥清单
如果希望ssh公钥生效需满足至少下面两个条件:
(1).ssh目录的权限必须是700
(2).ssh/authorized_keys文件权限必须是600
4.1配置主机互信
将本机公钥分发到其它被控制主机服务器
使用ssh-copy-id 命令实现公钥分发(也可使用其它命令如:scp命令)
ssh-copy-id root@192.168.238.135
ssh-copy-id root@192.168.238.136
注:如执行ssh-copy-id时报错提示命令不存在,解决办法参考下述,也可使用scp命令进行公钥分发
yum -y install openssh-clients
5.Ansible 配置
5.1修改配置文件
复制示例文件为配置文件
mkdir /etc/ansible
cp -r /usr/local/ansible/examples/* /etc/ansible/
将所有被管理的主机加入到/etc/ansible/hosts文件中
1.1可以将所有主机写入此文件,那么此后所做的操作就会影响所有写入的主机;
1.2可以以[主机组名]的方式定义属于同一组的所有主机,如定义[test]段,将所有的web主机的IP或者主机名写入段中,此后就可以用ansible实施诸如servicehttpdstatus等仅对web主机所做的操作了,而其他主机则不会受影响,当然一个组中的主机也可以在其他组中出现,不一定每个组中的主机都不相同;
1.3可以用通配符的方式定义,如node[1:3].a.com,表示定义了node1.a.com node2..a.com和node3.a.com三台主机;
1.4可以直接写入主机IP,也可以写入主机名,但是必须保证能解析这些主机名;

这里我专门添加了一个未使用的服务器IP(192.168.238.137)方便我们下述测试中观察可达节点及不可达节点之间区别
5.2测试ansible受管节点是否可达
ansible test -m ping # 执行ping命令对test 组进行存活检测,如对所有组进行检测可使用 all替换test

6.Ansible 命令格式
ansible命令格式:
ansible <host-pattern> [-m module_name] [-a args] [options]
<host-pattern> :指定主机组或IP
[-m module_name] : 指定调用模块
[-a args] [options] : 传递给模块的参数
6.1Ansible常用命令
ansible test --list-hosts # 列出执行主机列表
ansible-doc -l # 查看所有模块 (键入q退出)
ansible-doc command # 查看command模块详细信息
ansible-doc -s command # 查看command模块详细用法
ansible test -m command -a 'df -h' # 对所有被控服务器使用df -h 命令
ansible web -m command -a 'useradd Tom' # 批量添加用户
想系统了解Ansible的同学也可以参考下如下链接文章
(http://www.ansible.com.cn/docs/intro_installation.html) (Ansible 中文指南)
(http://www.178linux.com/79792)(Ansible 相关文章)
Linux 源码安装Ansible 参考篇的更多相关文章
- mysql-5.5 for linux源码安装
mysql-5.5 for linux源码安装 1.使用Yum安装依赖软件包 # yum install -y gcc gcc-c++ gcc-g77 autoconf automake bison ...
- 源码安装Ansible
一.Ansible介绍 ansible是一款的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批 ...
- Linux源码安装JDK1.8
Linux源码安装Java 1.到官网下载 jdk-8u131-linux-x64.tar.gz 官网地址:http://www.oracle.com/technetwork/java/javase/ ...
- Linux源码安装软件
Linux环境下 源码编译安装软件 ==== 1. 下载,步骤略 ==== 2. 验证,部分官方下载同时提供签名,MD5,sha1,sha256等校验信息. $ gpg --verify gnupg- ...
- Linux 源码安装 FFmpeg
加班次数频繁,已经快一年没有写博了.由于此次在项目中使用到了 FFmpeg 来处理音视频,顾记录下在 Linux 系统中源码安装 FFmpeg 以便不时之需. 1. 安装 yasm yasm 是一个汇 ...
- linux源码安装mysql,shell编程学习,ubuntu
一.mysql安装 以源码安装的方式编译和安装Mysql 5.6. 1.卸载旧版本 rpm -qa | grep mysql 检查是否有旧版本 查询结果:mysql-libs-5.1.73-7.el6 ...
- linux源码安装软件的一般方法
rhel系统貌似安装不了xmgrace,配置的时候居然说要那个M*tif库.百度了一下,需要openmotif库,然后用root账户想要用yum安装一下这个库,搞了好久没搞懂.后面搞明白了,原因竟是因 ...
- Linux源码安装RabbitMQ高可用集群
1.环境说明 linux版本:CentOS Linux release 7.9.2009 erlang版本:erlang-24.0 rabbitmq版本:rabbitmq_server-3.9.13 ...
- Linux源码安装mysql步骤
创建文件夹: mkdir /usr/local/webserver 安装必要依赖包 yum -y install gcc gcc-c++ make ncurses-devel安装cmake ...
随机推荐
- 初识python:多线程
多线程:在一个程序中,独立运行的程序片断叫作"线程"(Thread),利用它编程的概念就叫作"多线程处理".即:一个进程中,多个线程. 举个例说明:就像是一列火 ...
- wget 工具使用
wget http://xxxx 下载文件到当前文件夹 wget -V 显示wget的版本信息并退出 wget -v 打印详细信息 默认 wget -nv 关闭详细输出,但不进入安静模式 wget - ...
- Centos安装与配置
一.安装 默认安装 二.配置 配置网卡 BOOTPROTO=none ONBOOT=yes IPADDR=xxx.xxx.x.xx PREFIX=24 GATEWAY=xxx.xxx.x.x DNS1 ...
- 经典变长指令-ModRM
一.如何计算ModRM 0X88 MOV Eb,Gb G:通用寄存器 0X89 MOV Ev,Gv E:寄存器/内存 0X8A MOV Gb,Eb b:字节 0X8B MOV Gv,Ev v:Word ...
- 《手把手教你》系列技巧篇(五十六)-java+ selenium自动化测试-下载文件-上篇(详细教程)
1.简介 前边几篇文章讲解完如何上传文件,既然有上传,那么就可能会有下载文件.因此宏哥就接着讲解和分享一下:自动化测试下载文件.可能有的小伙伴或者童鞋们会觉得这不是很简单吗,还用你介绍和讲解啊,不说就 ...
- 02-JS中的数据类型及类型转换
02-JS中的数据类型及类型转换 一.数据类型 JS中的值,无论是字面量还是变量,都有明确的类型. (一)概述 1.基本类型5种 number 数字类型 string 字符串类型 boolean 布尔 ...
- Choregraphe 2.8.6.23动作失效
动作和动画执行完以后,无法自动还原成默认状态,自然接下来动作无法执行了.之后各种操作可能诱发软件原有的bug.需要开关自主生活模块才能恢复. 部分连贯的动作不需要恢复就能执行,动画不行. 站立动作好像 ...
- 建造者模式(Bulider模式)
模式的定义与特点 建造者(Builder)模式的定义:指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式.它是将一个复杂的对象分解为多个简单的对象 ...
- linux文件系统讲解(一)
首先拿个一个硬盘,不能直接使用,要进行分区,比如下面的一块内存: 如果要进行分区,那么怎么分区,所以要有一个内存,用来保存怎么分区的信息,该块内存的名字叫启动块(BootBlock),他的大小是固定的 ...
- golang中的标准库strconv
strconv 包 strconv包实现了基本数据类型与其字符串表示的转换,主要有以下常用函数: Atoi().Itia().parse系列.format系列.append系列. string与int ...