2.ansible

时间:2021-10-10
本文章向大家介绍2.ansible,主要包括2.ansible使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Ansible介绍

Ansible是一个开源部署工具,由Python开发,不需要安装客户端,通过SSH协议通信,全平台,模块化部署管理。

各个部署工具比较

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

ansible的优势:

1. 轻量级,无客户端(agentless)

2. 开源免费,学习成本低,快速上手

3. 使用Playbook作为核心配置架构,统一的脚本格式

4. 完善的模块化扩展,支持目前主流的开发场景

5. 强大的稳定性和兼容性

环境准备

3台机器需要做环境准备。

机器角色

Jenkins + Ansible   192.168.52.130

test host   192.168.52.129

gitlab  192.168.52.129

关闭防火墙和selinux

# systemctl stop firewalld && systemctl disable firewalld

# setenforce 0 && sed -i 's/=enforcing/=disabled/g' /etc/selinux/config

添加本地dns:

192.168.52.130 jenkins.example.com
192.168.52.129 test.example.com
192.168.52.129 gitlab.example.com

在Windows电脑hosts文件中添加本地dns

192.168.52.130 jenkins.example.com
192.168.52.129 test.example.com
192.168.52.129 gitlab.example.com

Ansible安装

ansible有两种安装方式。

第一种是yum安装

# yum install -y ansible

第二种是git安装

# yum install -y git nss curl zlib* libffi-devel openssl openssl-devel

# cd /software

# wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz

# tar zxf Python-3.7.3.tgz

# cd Python-3.7.3

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

# make && make altinstall

# ln -s /usr/local/bin/pip3.7 /usr/local/bin/pip
# pip install --upgrade pip

# pip install virtualenv

# useradd deploy                #创建ansible部署用户deploy

# su - deploy

$ virtualenv -p /usr/local/bin/python3.7 .py3-a2.8-env

$ cd /home/deploy/.py3-a2.8-env

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

$ source /home/deploy/.py3-a2.8-env/bin/activate

$ pip install paramiko PyYAML jinja2

$ cd ansible/

$ git checkout stable-2.8

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

$ ansible --version

ansible 2.8.5.post0
  config file = None
  configured module search path = ['/home/deploy/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/deploy/.py3-a2.8-env/ansible/lib/ansible
  executable location = /home/deploy/.py3-a2.8-env/ansible/bin/ansible
  python version = 3.7.3 (default, Oct  9 2019, 18:19:25) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]

通过这种方式安装的ansible隔离于宿主机的python环境。

原文地址:https://www.cnblogs.com/hbxZJ/p/15388969.html