zoukankan      html  css  js  c++  java
  • # Ansible安装指南

    1、Ansible简介

    定义:Ansible是一个开源部署工具

    2、Ansible与Chef,Saltstack的不同:

    • Chef: Ruby语言编写,C/S架构,配置需要Git依赖,Recipe脚本编写规范,需要编程经验
    • Saltstack: Python语言编写,C/S架构,模块化配置管理,YAML脚本编写规范,适合大规模集群部署
    • Ansible: Python语言编写,无Client,模块化配置管理,Playbook脚本编写规范,易于上手,适合中小规模快速部署

    3、Ansible配合virtualenv安装配置

    1)关闭Linux防火墙:

    systemctl stop firewalld

    2)禁止防火墙开启启动:

    systemctl disable firewalld

    3)关闭selinux(强制访问控制安全策略):

    vi /etc/sysconfig/selinux

    selinux=enforcing 修改为 selinux=disabled

    4)重启使其生效:

    reboot

    5)查看selinux是否关闭成功:

    getenforce

    6)下载python 3.6.5:

    wget http://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz

    注:如果提示"wget未找到命令" 需要安装wget:yum -y install wget

    7)解压python安装包:

    tar xf Python-3.6.5.tar.xz

    8)进入解压后的目录:

    cd Python-3.6.5

    9)设定我们当前编译的参数的值:

    输入命令

    ./configure --prefix=/usr/local --with-ensurepip=install --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"

    点击回车进行编译工作
    参数说明:

    --prefix=/usr/local 将python-3.6.5安装到/usr/local目录下
    --with-ensurepip=install 用来安装我们pip包管理工具
    --enable-shared 用来配置我们python-3.6.5匹配我们当前系统的参数值

      注:如果报错"configure: error: no acceptable C compiler found in $PATH",
    则需要安装GCC软件套件,输入命令:`yum install gcc` 安装,然后再执行上述命令,
    完成编译初始化。
    

    10)完成编译,并将编译好的文件安装到/usr/local目录下:

    make && make altinstall

      注:如果出现下列错误:"zipimport.ZipImportError: can't decompress data; zlib not available     make: *** [altinstall] 错误 1"  
    说明缺少zlib依赖包,输入"yum install zlib* -y"  完成后,重新执行上述命令。
    

    11)使用python安装好的pip包管理工具

    去安装我们的virtualenv,查看pip3.6的路径,输入 which pip3.6 命令。

    12)给pip3.6做软链接:

    输入命令

    ln -s /usr/local/bin/pip3.6 /usr/local/bin/pip

    点击回车,这样我们就可以通过命令行 pip install virtualenv 安装 virtualenv 工具。

      注:如果出现下列错误:"pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.说明是网络原因可以换一个国内的地址,输入如下命令行:`pip install virtualenv -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com`
    

    13)创建一个Ansible系统账户,并在该系统下创建python3.6版本系统实例

    创建一个以deploy命名的Ansible账户

    useradd deploy

    用deploy账户登录

    su - deploy

    创建一个实例

    virtualenv -p /usr/local/bin/python3.6 .py3-a2.5-env

    去在deploy用户下创建一个python3.6版本的virtualenv实例, 这个virtualenv实例用来集成ansible2.5版本,点击回车,就成功创建了python3.6版本的virtualenv实例。

    注:如果报如下错误:ModuleNotFoundError:no module named '_ssl',解决方案如下:
       1. 返回到root用户输入命令: `su - root` 然后输入root账户密码。
       2. 首先进入Python-3.6.5目录,就是你解压后安装python3.6.5的目录文件。
       3. cd 到  Modules 目录里,找到Setup和Setup.dist文件,将下面几行注释去掉。Setup下更改 `vim Setup`(大概在51%的位置),Setup.dist下的更改 `vim Setup.dist`(大概在50%的位置)
       4.编译安装
         `cd ..`
         `./configure --prefix=/usr/local --with-ensurepip=install --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" `
         `make`
         `make install`
       5.删除旧的软连接,创建新的软连接(很重要)
         `rm -rf /usr/local/bin/pip`
         `ln -s /usr/local/bin/pip3.6 /usr/local/bin/pip`
    

    14)接下来我们去git源码安装ansible2.5版本,首先进入刚才安装的virtualenv实例目录:

    cd /home/deploy/.py3-a2.5-env

    15)查看当前的环境是否安装了git client工具:

    which git

    注:如果没有安装,我们需要如下操作:
       1. 返回root目录: `su - root` 回车,输入密码 回车 进入root环境。
       2. 输入 `yum -y install git nss curl` 安装git客户端工具及相关依赖包。
       3. 切换回deploy界面 `su - deploy`
    

    16)用git命令去github上克隆ansible源码到本地:

    git clone https://github.com/ansible/ansible.git

    回车 把ansible源码克隆岛本地

    17)加载我们的python3.6 virtualenv 环境

    source /home/deploy/.py3-a2.5-env/bin/activate 回车

    18)接下来我们在virtualenv 环境 中安装ansible依赖包(paramiko PyYAML jinja2):

    pip install paramiko PyYAML jinja2

    19)将刚下载的ansible源代码移动到我们的python3.6虚拟环境下:

    mv ansible .py3-a2.5-env/

    20)接下来我们需要进入该python3.6的环境下,并进入ansible这个源代码目录:

    cd .py3-a2.5-env/ansible/

    21)我们需要在该代码原目录下,切换我们的ansible安装版本为2.5版本:

    git checkout stable-2.5

    22)用来在我们的子虚拟环境下加载ansible2.5版本

    source /home/deploy/.py3-a2.5-env/ansible/hacking/env-setup -q

    24)验证Ansible是否在python3.6的环境下安装加载完成

    ansible --version

  • 相关阅读:
    移动页面HTML5自适应手机屏幕宽度
    “流式”前端构建工具——gulp.js 简介
    HDU2602-Bone Collector
    HDU3535-AreYouBusy
    HDU1712-ACboy needs your help
    HDU3496-Watch The Movie
    HDU1171-Big Event in HDU
    POJ2533-Longest Ordered Subsequence
    HDU2084-数塔
    HDU2023-求平均成绩
  • 原文地址:https://www.cnblogs.com/lijinping321/p/14746260.html
Copyright © 2011-2022 走看看