CentOS下部署ansible自动化工具

1.确保机器上安装的是 Python 2.6 或者 Python 2.7 版本:

python -V

2.查看yum仓库中是否存在ansible的rpm包

yum list|grep ansible

若不存在或是低版本可更换yum源或者采用源码安装

阿里云的yum源:http://mirrors.aliyun.com/repo/  备份源文件,然后下载对应的版本至/etc/yum.repos.d/目录即可,如epel-6.repo (通过该yum源安装ansible会依赖python 2.6,如果python版本是2.7以上可能会安装失败)

3.安装ansible服务:

yum install ansible -y

4.修改ansible配置和主机列表hosts:

1)关闭第一次使用ansible连接客户端时输入命令提示:

sed -i "[email protected]\#host_key_checking = [email protected]_key_checking = [email protected]" /etc/ansible/ansible.cfg

指定日志路径:

sed -i "[email protected]\#log_path = \/var\/log\/[email protected]_path = \/var\/log\/[email protected]" /etc/ansible/ansible.cfg

2)将所有主机ip加入到/etc/ansible/hosts文件中:

定义主机组和主机

默认ssh的端口为22端口,如果为其他端口号,可在主机名后面加上端口号,如 192.168.159.131:9604 ,也可以修改配置文件中的remote_port变量值

/etc/ansible/hosts也可以定义一个主机范围,如192.168.159.[100:200] ,表示192.168.159.100 - 192.168.159.200 的主机

5.创建和配置 SSH 公钥认证(免密码登录):

ssh-keygen -t rsa

按提示使用默认配置一路回车即可:

6.通过ansible将公钥分发至各主机上:

ansible all -m authorized_key -a "user=root key=‘{{ lookup(‘file‘, ‘/root/.ssh/id_rsa.pub‘) }}‘ path=/root/.ssh/authorized_keys manage_dir=no" --ask-pass -c paramiko

需要输入主机的密码,若是有的主机密码不一致,那么该主机会分发失败,此时只需再执行一遍命令输入该主机密码即可。或者先将密码相同的主机进行分组,然后依次指定主机组执行命令分批分发公钥。

此命令是通过追加的方式来推送公钥至authorized_keys,所以不用担心原来的文件内容会被覆盖。

到任意一台主机上查看,可以看到公钥已成功推送:

7.修改ansible配置,指定私钥文件路径:

sed -i "[email protected]\#private_key_file = \/path\/to\/[email protected]_key_file = \/root\/.ssh\/[email protected]" /etc/ansible/ansible.cfg

8.测试:

可以在命令后面加上-vvvv参数查看详细的输出结果,尤其是在命令执行失败需要排错的时候非常有用。

9.自动化安装脚本:

注意:

①执行脚本前需要配置/root/hosts主机列表文件,内容如:

[[email protected] ~]# cat /root/hosts

[app]

192.168.159.130

[web]

192.168.159.131

②脚本分发公钥至远程主机时会提示输入远程主机的密码

③脚本通过yum方式安装

脚本内容:

#!/bin/bash
#
#############################################
# author:ellen
# describes:自动化安装和配置ansible
# version:v1.0
# updated:20170531
#############################################
#
# 主机列表文件
hostfile=‘/root/hosts‘
# 错误信息以红色显示
function _err
{
echo -e "\033[1;31m[ERROR] [email protected]\033[0m"
}
# 一般信息以绿色显示
function _info
{
echo -e "\033[1;32m[Info] [email protected]\033[0m"
}
# 仅限指定用户运行本脚本
if [ $EUID != "0" ];then
echo "Please use root run script!!!"
exit 1
fi
rpm -qa|grep ansible
if [ $? -eq 0 ];then
_err "ansible 已存在,无需重复安装!退出..."
exit 1
fi
if [ -e $hostfile ];then
yum list|grep ansible
if [ $? -ne 0 ];then
_err "仓库不存在ansible的rpm包,退出..."
exit 1
else
yum install ansible -y
if [ $? -eq 0 ];then
_info "ansible 安装完毕..."
sed -i "[email protected]\#host_key_checking = [email protected]_key_checking = [email protected]" /etc/ansible/ansible.cfg
sed -i "[email protected]\#log_path = \/var\/log\/[email protected]_path = \/var\/log\/[email protected]" /etc/ansible/ansible.cfg
cp $hostfile /etc/ansible/hosts
_info "$hostfile 已拷贝至 /etc/ansible/目录"
ssh-keygen -t rsa -P ‘‘ -f /root/.ssh/id_rsa
_info "请按以下提示输入 ${hostfile} 列表中的主机密码:"
ansible all -m authorized_key -a "user=root key=‘{{ lookup(‘file‘, ‘/root/.ssh/id_rsa.pub‘) }}‘ path=/root/.ssh/authorized_keys manage_dir=no" --ask-pass -c paramiko
sed -i "[email protected]\#private_key_file = \/path\/to\/[email protected]_key_file = \/root\/.ssh\/[email protected]" /etc/ansible/ansible.cfg
_info "ansible 已部署完毕!"
else
_err "ansible 安装失败!"
fi
fi
else
_err "$hostfile 主机列表文件不存在,请检查!"
exit 1
fi
时间: 2024-10-09 07:22:19

CentOS下部署ansible自动化工具的相关文章

ANSIBLE自动化工具

ANSIBLE自动化工具 ansible相关文件 rpm包安装:EPEL源 配置文件 /etc/ansible/hosts #管理主机的清单 /etc/ansible/roles/ #存放角色的目录 /etc/ansible/ansible.cfg #主配置文件,配置ansible工作特性,一般默认就好 程序 /usr/bin/ansible #主程序,临时命令执行工具 /usr/bin/ansible-doc #查看配置文档,模块功能查看工具 /usr/bin/ansible-galaxy #

Ansible自动化工具简介(一)

### Ansible Ansible优点: Agentless(去中心化) Stupied Simple (上手简单,学习曲线平滑) SSH by default (安全,无需安装客户端) YAML no code,定制剧本 (语法简单,维护方便) 自动工具衍生过程: 早期(很复杂,使用复杂,安装复杂,配置复杂):chef cfengine(C语言) func 中期(向轻量型发展):puppet (ruby) 近代(轻量工具): saltstack ansible (Python) Ansib

Centos下部署Flask

尝试在Centos6.5下部署Flask应用并成功,记录一下步骤,参数为什么这样配置还需要再研究uwsgi和Nginx才能回答. Python版本升级2.7 测试机器centos6.5默认自带的python版本是2.6.6,因此需要升级.我们采用Anacond的方式进行升级. 升级过程: 下载anaconda https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 下载Anaconda2-4.3.1-Linux-x86_64.sh 拉到服务器

在centOS 7 上部署ansible自动化运维环境

环境: 3台centos 7 mycat : 10.0.0.2 mariadb1: 10.0.0.3 mariadb2: 10.0.0.4 为了实验方便 firewalld.selinux均处于关闭状态 hosts文件均添加如下映射: 10.0.0.2 mycat 10.0.0.3 mariadb1 10.0.0.4 mariadb2 1.安装 ansible工具 [[email protected] ~]# yum -y install ansible 2.设置ssh免密登陆 [[email 

centos7+ansible自动化工具使用

一.基础介绍 ========================================================================================== 1.简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansi

【服务器】CentOS下部署运行NodeJs Web App

NodeJs Web App测试完成后,要怎么部署呢?介绍两个不错的方案 已知以下情景: 我要为 「kenniu」这个项目做配置 它的入口文件在 「/path/to/entry.js」 运行的User和Group都是 MrKen node安装在了 /usr/bin/node 监听端口是2589 接下分别看这两种方案. 壹 | Fisrt 方案一:配置System,24小时保持在线 cd /etc/systemd/system/ sudo vi  kenniu.service    输入以下配置信

在centos下部署docker内网私服

Docker内网私服:docker-registry with nginx & ssl on centos docker-registry既然也是软件应用,自然最简单的方法就是使用官方提供的已经部署好的镜像registry.官方文档中也给出了建议,直接运行sudo docker run -p 5000:5000 registry命令.这样确实能启动一个registry服务器,但是所有上传的镜像其实都是由docker容器管理,放在了/var/lib/docker/....某个目录下.而且一旦删除容

Centos下安装nc命令工具安装以及使用

1)netcat(nc)是一个简单而有用的工具,被誉为网络安全界的"瑞士军刀",不仅可以通过使用TCP或UDP协议的网络连接读写数据,同时还是一个功能强大的网络调试和探测工具,能够建立你需要的几乎所有类型的网络连接. 2)在Linux终端窗口可以直接使用yum工具进行安装: [[email protected] spark]# yum install nc.x86_64 3)安装完毕后,在终端模式下运行nc -help查看命令是否正常安装 [[email protected] spar

SuSE源码安装Ansible自动化工具

自动化运维工具ansible源码安装方法 注:安装之前先对SuSE官方说一声FUCK!!!! 1.首先查看python版本 [[email protected] ~]# python -V Python 2.6.6 注意安装ansible的时候,必须python的版本为2.6以上. 2.安装ansible 2.1 安装pycrypto模块 https://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz tar xv