前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jenkins+Ansible+GitLab持续交付平台搭建-第3篇

Jenkins+Ansible+GitLab持续交付平台搭建-第3篇

作者头像
Criss@陈磊
发布2019-10-22 14:18:59
7770
发布2019-10-22 14:18:59
举报
文章被收录于专栏:测试技术圈

Ansible安装配置管理

Ansible优势和应用场景

Ansible:开源部署工具

开发语言:Python

特点:ssh协议通讯,全平台,无需编译,模块化部署管理

作用:推送playbook进行远程节点快速部署

优势:

轻量级无客户端(Agentless)

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

使用playbook作用核心配置架构,统一脚本格式,批量化部署

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

强大的稳定性和兼容性

Ansible安装配置

Ansible的两种安装模式(cenOS7)

1.yum包管理安装

代码语言:javascript
复制
# yum –y install ansible
代码语言:javascript
复制

2.Git源码码安装(推荐)

Ansible2.5+Python3.6安装步骤:

1)预先安装py3.6

代码语言:javascript
复制
# wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz

#指定目录编译
# tar xvf Python-3.6.5.tar.xz
#cd /Python-3.6.5
# ./configure --prefix=/usr/local --with-ensurepip=install --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
代码语言:javascript
复制

遇到错误:configure: error: no acceptable C compiler found in $PATH

解决:yum install -y gcc

# make && make altinstall

遇到错误:make: *** [altinstall] Error 1

解决:yum install zlib-devel bzip2-devel sqlite sqlite-devel openssl-devel

https://stackoverflow.com/questions/40355611/python-3-4-installation-error-1-oserror-errno-22-invalid-argument

2)安装virtualenv

代码语言:javascript
复制
#查看pip路径
# which pip3.6
/usr/local/bin/pip3.6

#给usr/local/bin/pip3.6做软连接
# ln -s /usr/local/bin/pip3.6  /usr/local/bin/pip
# pip install virtualenv
代码语言:javascript
复制

3)创建ansible账号并安装py3.6版本和virtualenv实例

代码语言:javascript
复制
# useradd deploy
# su - deploy
# virtualenv -p /usr/local/bin/python3.6 .py3-a2.5-env

4)git源代码安装Ansible2.5

代码语言:javascript
复制
#查看deploy用户是否安装git
# su - deploy
$ which git
/usr/bin/git

#使用root用户安装git依赖包
# yum -y install git nss  curl

#deploy git安装完成后(使用root)
# cd  /home/deploy/.py3-a.2.5-env
# git clone https://github.com/ansible/ansible.git
代码语言:javascript
复制

5)加载py3.6 virtualenv环境

代码语言:javascript
复制
# source  /home/deploy/.py3-a2.5-env/bin/activate

6)安装Ansible依赖包

代码语言:javascript
复制
#安装paramiko pyYAML jinja2依赖包
# pip install paramiko pyYAML jinja2

#进入ansible目录下将ansible源代码切换到2.5版本
# cd .py3-a2.5-env/ansible
# git checkout stable-2.5

7)在py3.6虚拟环境下加载ansible2.5

代码语言:javascript
复制
# source  /home/deploy/.py3-a2.5-env/ansible/hacking/env-setup -q

8)验证ansible2.5

代码语言:javascript
复制
# ansible --version
代码语言:javascript
复制

到此ansible2.5版本已经成功的在py3.6虚拟环境下完成安装;

CentOS6.7下Ansible部署:http://www.showerlee.com/archives/1649

Ansible中文权威指南:http://www.ansible.com.cn/index.html

https://blog.csdn.net/wating_jx/article/details/71084592

Ansible常用模块操作和编写规范

playbook框架与格式

Test playbook 文件结构清单:

inventory/ ---->server详细清单目录

testenv/ ---->具体清单与变量声明文件

roles/ ---->roles任务列表

testbox/

tasks/

main.yml ---->testbox主任务文件

deploy.yml ---->playbook任务入口文件

详细目录testenv

[testservers] ---->server组列表

test.example.com ---->目标部署服务器主机名

[testservers:vars] ---->server组列表参数

server_name= test.example.com

user=root ---->目标主机key/value参数

output=/root/test.txt

主任务文件main.yml

任务入口文件deploy.yml

远程ansible主机,编写playbook框架

代码语言:javascript
复制
# ssh root@47.98.198.241
# su - deploy

#加载py3.6虚拟环境
# source .py3-a2.5-env/bin/activate

#同时加载ansible2.5版本
# source  /home/deploy/.py3-a2.5-env/ansible/hacking/env-setup -q

#验证加载效果
# ansible-playbook --version

#编写playbook框架
# mkdir playbook
# cd /playbook
# mkdir inventory
# mkdir roles
# cd inventory

# vi testenv
   [testservers]
    report.example.com

  [testservers:vars]
    server_name= report.example.com
    user=root
    output=/root/test.txt

# cd roles
# mkdir testbox
# cd testbox
# mkdir tasks
# cd tasks

# vi main.yml
- name: print server name and user to remste testbox
shell: "echo 'Currently {{ user }} is logining {{ server_name }}' > {{ output }}"

# cd ../../..
#pwd
 /home/deploy/playbook

# vi deploy.yml
- hosts: "testservers"
  gather_facts: true
  remote_user: root
  roles:
    - testbox
代码语言:javascript
复制
#查看树形文件夹

#切换deploy用户,创建ssl秘钥认证

# ssh-keygen -t rsa

#指定deploy用户公钥

代码语言:javascript
复制
# ssh-copy-id -i /home/deploy/.ssh/id_rsa root@report.example.com(test.example.com是ansible本机DNS)
# ansible-playbook -i inventory/testenv ./deploy.yml (命令手动敲) 在/home/deploy/playboo目录下执行

遇到错误:bad permissions: ignore key: /home/deploy/.ssh/id_rsa

解决:

代码语言:javascript
复制
chmod 755 ~/.ssh/
chmod 600 ~/.ssh/id_rsa ~/.ssh/id_rsa.pub
chmod 644 ~/.ssh/known_hosts
代码语言:javascript
复制
#测试目标主机

authorized_key是目标主机.ssh的秘钥


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 质问 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Ansible安装配置管理
    • Ansible优势和应用场景
      • Ansible安装配置
        • Ansible常用模块操作和编写规范
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档