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 ...
随机推荐
- C#基础知识总结(五)
摘要 其他的数据类型:常量.枚举(enum).结构(struct).数组一.常量 语法:const 类型 变量名 = 变量值 常量称之为值不可变的变量! 在定义的地方赋值,其他的地方不能赋值. 常量变 ...
- [android] 利用广播实现ip拨号
广播接收者,broadcast receiver,安卓系统在使用时会产生很多的事件,比如:短信到来,电量低,拨打电话等等 界面布局,线性布局,EditText指定为电话号码,设置属性android:i ...
- nginx ssl证书
server { listen ; server_name xxx.com; root "/home/www/website"; ssl on; ssl_certificate / ...
- Android开发过程中的坑及解决方法收录(二)
bug 1: bug描述: 无法成功地将edittext中的内容传入数据库中 bug动图: 经过: 最近写了个项目,项目要使用到SQL数据库,由于没有相关知识,便是找到了各种资料开始了自学之旅,在de ...
- Netty 系列七(那些开箱即用的 ChannelHandler).
一.前言 Netty 为许多通用协议提供了编解码器和处理器,几乎可以开箱即用, 这减少了你在那些相当繁琐的事务上本来会花费的时间与精力.另外,这篇文章中,就不涉及 Netty 对 WebSocket协 ...
- 8.异常_EJ
第57条: 只针对异常情况才使用异常 异常是为了在异常情况下使用而设计的,不要将它们用于普通的控制流,也不要编写迫使它们这么做的API. 第58条: 对可恢复的情况使用受检异常,对编程错误使用运行时异 ...
- Laravel 系列入门教程(四)【最适合中国人的 Laravel 教程】
本篇文章中,我将跟大家一起实现 Article 的新增.编辑和删除功能,仔细解读每一段代码,相信本篇文章看完,你就能够 get Laravel 使用之道. RESTful 资源控制器 资源控制器是 L ...
- SPOJ1811 LCS - Longest Common Substring(后缀自动机)
A string is finite sequence of characters over a non-empty finite set Σ. In this problem, Σ is the s ...
- Django之django模型层二多表操作
一 创建模型 表和表之间的关系 一对一.多对一.多对多 ,用book表和publish表自己来想想关系,想想里面的操作,加外键约束和不加外键约束的区别,一对一的外键约束是在一对多的约束上加上唯一约束. ...
- Anaconda管理Python环境
Anaconda介绍 Anaconda指的是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依赖项.Anaconda提供环境管理的功能,功能类似 Virtuale ...