Jenkins+Ansible+Gitlab自动化部署三剑客-Ansible本地搭建









可以通过git bash连接linux

关闭防火墙,禁用防火墙开机启动,并更爱selinux文件,重启


重新登录并检查禁用
getenforce

安装git
yum -y install git nss curl
下载python安装包
wget http://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
解压 tar xf 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"
make && make altinstall
查看pip3.6
which pip3.6
给pip3.6做软连接
ln -s /usr/local/bin/pip3.6 /usr/local/bin/pip
安装virtualenv工具
pip install virtualenv
在新用户下创建virtualenv
useradd deploy
su - deploy
virtualenv -p /usr/local/bin/python3.6 .py3-a2.5-env
cd /home/deploy/.py3-a2.5-env
which git
没有安装
切换到root安装git
su - root
安装git
yum -y install git nss curl
切换回用户deploy
su - deploy
git克隆ansible
git clone https://github.com/ansible/ansible.git
加载virtualenv环境
source /home/deploy/.py3-a2.5-env/bin/activate
安装ansible依赖包
pip install parammiko PyYAML jinja2
把ansible源代码移动到python3.6的virtualenv环境下
mv ansible .py3-a2.5-env/
cd .py3-a2.5-env/ansible/
切换到ansible到2.5版本
git checkout stable-2.5
加载
source /home/deploy/.py3-a2.5-env/ansible/hacking/envsetup -q
看是否安装成功
ansible --version







加载python 环境和ansible环境
su -deploy
source .py3-a2.5-env/bin/activate
source .py3-a2.5-env/ansible/hancking/env-setup -q

验证是否开启ansible服务
ansible-playbook --version

创建若干文件
mkdir test_playbooks
cd test_playbooks/
mkdir inventory
mkdir roles
cd inventory/

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

cd ..
ls
cd roles/
mkdir testbox
cd testbox
mkdir tasks
cd tasks/

vim main.yml
- name: Print server name and user to remote testbox
shell: "echo 'Currently {{ user }} is logining {{ server_name}}' > {{ output}}"
输入一条数据到目标主机
回到test_playbooks
pwd
cd ../../..
pwd

vim deploy.yml (入口文件)
- host: "testservers"
gather_facts: true
remote_user: root
roles:
- testbox

tree .



创建密钥














实际操作
连接ansible服务器
su -deploy
启动py3
source .py3-a2.5-env/bin/activate
启动ansible
source .py3-a2.5-env/ansible/hacking/env-setup -q
查看ansible是否启动
ansible-playbook --version

为了推到目标服务器的任务顺利执行
ssh root@test.example.com
useradd foo
useradd deploy
mkdir /etc/nginx
给目标服务器安装nginx环境
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.e17.ngx.noarch.rpm

退出回到ansible
pwd
ls
cd test_playbooks/
ls

vi roles/testbox/tasks/main.yml
- name: create a file
file: 'path=/root/foo.txt state=touch mode=0775 owner=foo group=foo'

测试脚本是否可用
ansible-playbook -i inventory/testenv ./deploy.yml

另外的检查方式
ssh root@test.example.com ls -l /root/foo.txt

创建另一个模块
mkdir /root/testbox/files
vi roles/testbox/files/foo.sh
echo "This is a test script"


vi roles/testbox/tasks/main.yml
- name: copy a file
copy: 'remote_src=no src=roles/testbox/files/foo.sh dest=/root/foo.sh mode=0644 force=yes'

然后执行,看是否执行成功
ansible-playbook -i inventory/testenv ./deploy.yml

vi roles/testbox/tasks/main.yml
获取文件状态信息
- name: check if foo.sh exists
stat: 'path=/root/foo.sh'
register: script_stat

状态判断
- debug: msg="foo.sh exists"
when: script_stat.stat.exists

执行并查看状态
ansible-playbook -i inventory/testenv ./deploy.yml
vi roles/testbox/tasks/main.yml
执行远程脚本
- name: run the script
command: 'sh /root/foo.sh'

ansible-playbook -i inventory/testenv ./deploy.yml
vim inventory/testenv
server_name=test.example.com
port=80
user=deploy
worker_processes=4
max_open_file=65505
root=/www

mkdir roles/testbox/templates
vim roles/testbox/templates/nginx.conf.j2




vi roles/testbox/tasks/main.yml

查看执行状态
ansible-playbook -i inventory/testenv ./deploy.yml
另一种查看,然后有配置,并且替换了参数,说明成功
ssh root@test.example.com cat /etc/nginx/nginx.conf

查看nginx是否启动成功

Jenkins+Ansible+Gitlab自动化部署三剑客-Ansible本地搭建的更多相关文章
- Jenkins+Ansible+Gitlab自动化部署三剑客
一.gitlab安装 环境:centos 7 x64 1.关闭防火墙 systemctl stop firewalld systemctl disable firewalld 2.禁用selinux ...
- Jenkins+Ansible+Gitlab自动化部署三剑客-gitlab本地搭建
实际操作 准备linux初始环境 关闭防火墙 systemctl stop firewalld 开机自己关闭 systemctl disable firewalld 设置安全配置 为关闭 vim /e ...
- Jenkins+Ansible+Gitlab自动化部署三剑客-Jenkins本地搭建
后面需要shell基础,目前没有,等有了,再更
- Jenkins Ansible GitLab 自动化部署
Jenkins Ansible GitLab 自动化部署 DevOps https://www.cnblogs.com/yangjianbo/articles/10393765.html https: ...
- Jenkins+maven+gitlab自动化部署之基础环境部署(一)
从一个二线城市,来到上海,刚入职,老大就给任务,为了减少开发打包部署时间,需要搭建一套自动化部署环境.接到任务后,赶紧上网查找资料,以及了解jenkins作用等等,用了一周时间,了解了个大概,由于都是 ...
- Jenkins+maven+gitlab自动化部署之docker发布sprint boot项目(七)
Jenkins发布docker应用与发布java应用配置基本一致,需要配置Dockerfile及构建的步骤,步骤如下: 1.jenkins主机构建应用为jar包 2.jenkins主机把生产的jar包 ...
- Jenkins+maven+gitlab自动化部署之前端构建发布(六)
前端项目构建,需要在jenkins主机部署node服务,网上有说介绍说安装对应的nodejs插件进行前端项目构建,我这里是直接调用系统npm命令,进行前端打包.具体node部署参考:Centos7部署 ...
- Jenkins+maven+gitlab自动化部署之构建Java应用(五)
前面几篇文章介绍jenkins部署以及配置,接下来我们,就介绍下如何使用jenkins发布应用. 1)新建项目 jenkins首页,点击左上新建任务,出现下图,填写对应信息,然后点击确定: 2)项目参 ...
- Jenkins+maven+gitlab自动化部署之Jenkins部署(三)
本章开始正式搭建Jenkins: 公司现在使用的jenkins版本是2.150.3,但是本次实验安装的版本我们选择最新的 2.164.3(当然,当你阅读这篇文章时,此版本已经不是最新),jenkins ...
随机推荐
- .NET面试题01-值类型与引用类型
常见面试题目: 1. 值类型和引用类型的区别? 2. 结构和类的区别? 3. delegate是引用类型还是值类型?enum.int[]和string呢? 4. 堆和栈的区别? 5. 什么情况下会在堆 ...
- Git中的"pull request"真正比较的是什么?
前言 利用git版本控制工具时,我们通常会从主分支拉出新分支进行开发,开发完成后创建pr(也就是pull request),让其他小伙伴帮忙review,确定代码没有问题后再将新分支合并到主分支上.但 ...
- laravel compact的用法
向视图中传递变量 我们在开发web应用当中,通常都不是为了写静态页面而生的,我们需要跟数据打交道,那么这个时候,问题就来了,在一个MVC的框架中,怎么将数据传给视图呢?比如我们要在 ArticleCo ...
- TP5.0 PHPExcel 数据表格导出导入(引)
TP5.0 PHPExcel 数据表格导出导入(引) 今天看的是PHPExcel这个扩展库,Comporse 下载不下来,最后只能自己去github里面手动下载,但有一个问题就是下载下来的PHPExc ...
- 前端入门9-JavaScript语法之运算符
声明 本系列文章内容全部梳理自以下几个来源: <JavaScript权威指南> MDN web docs Github:smyhvae/web Github:goddyZhao/Trans ...
- 洛谷P4063 [JXOI2017]数列(dp)
题意 题目链接 Sol 这题想还是不难想的,就是写起来很麻烦,然后去看了一下loj的最短代码表示只能Orz 首先不难发现一条性质:能够选择的区间一定是不断收缩的,而且新的可选区间一定是旧区间的某个位置 ...
- POI 读取 excel
xls 和 xlsx 后缀是因为 world excel 版本不一致,需要区别对待 依赖 <dependency> <groupId>org.apache.poi</gr ...
- zxing开源库的基本使用
如果你的项目中有模块跟二维码相关的话,那你一定听过或者用过大名鼎鼎的zxing开源库. 什么是zxing? ZXing是一个开源的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其 ...
- python爬虫从入门到放弃(九)之 Requests+正则表达式爬取猫眼电影TOP100
import requests from requests.exceptions import RequestException import re import json from multipro ...
- git 入门教程之github 教程
github 教程 github 是一个基于 git 的代码托管平台,是平时工作学习的好帮手,学会如何用好 github 网站能够帮助我们更好分享代码或者与其他开发人员合作. 注册 github 账号 ...