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 ...
随机推荐
- SqlServer 技术点总结(持续更新)
本文是用于记录自己平时遇到的一些SQL问题或知识点,以便以后自己查阅,会持续的更新,增加内容.发在博客园也可以和各位博友共同学习交流,如文中记录的有错误之处希望指出,谢谢. 一.用SQL语句调用作业 ...
- SpringBoot 2.0 报错: Failed to configure a DataSource: 'url' attribute is not specified and no embe
问题描述 *************************** APPLICATION FAILED TO START *************************** Description ...
- 【JDK和Open JDK】平常使用的JDK和Open JDK有什么区别
注意到这个问题,是在CentOS7上安装JDK的时候,查找相关的资料,发现安装JDK之前都需要检查或卸载系统上原生的Open JDK,这才引起了注意. 到了这里,引用查到的一篇说明. 转自:http: ...
- python中的eval函数
eval() 函数十分强大 -- 将字符串 当成 有效的表达式 来求值 并 返回计算结果 In [1]: eval("1 + 3") Out[1]: 4 In [2]: eval( ...
- matlab rank
k =rank(A) %a is matrix s = svd(A); tol = max(size(A))*eps(max(s)); r = sum(s > tol);
- [转] 快速部署Tomcat项目的Shell脚本
为了做集群测试,在每台机器上装了3个tomcat,每次发布项目的时候都要反复敲一些命令,重启tomcat之前先检查tomcat进程有没有停掉,没有还要手动kill该进程. 发布次数多了,操作就比较繁琐 ...
- 教你搞定ElasticSearch(head)
简介: ElasticSearch(以下简称ES)是一个基于Lucene构建的开源(open-source),分布式(distributed),RESTful,实时(real-time)的搜索与分析( ...
- Spring学习之旅(八)Spring 基于AspectJ注解配置的AOP编程工作原理初探
由小编的上篇博文可以一窥基于AspectJ注解配置的AOP编程实现. 本文一下未贴出的相关代码示例请关注小编的上篇博文<Spring学习之旅(七)基于XML配置与基于AspectJ注解配置的AO ...
- error 2593 operator << 不明确的可能的解决方法
编译Martinez算法时遇到该问题,提示重载的<<操作符调用不明确. 解决方法为:在cpp文件中将重载的该操作符的实现前添加完整的命名空间路径.
- JAVA代码根据经纬度范围计算WGS84与谷歌全球墨卡托包含的切片数目与拼接图像像素尺寸
根据项目需求编写的代码. 适用场景:在网络地图上,比如天地图与谷歌地图,用户用鼠标在地图上拉一个矩形框,希望下载该矩形框内某一层级的瓦片数据,并将所有瓦片拼接成一个完整的,包含地理坐标的tif图像. ...