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 ...
随机推荐
- cmd Telnet 手工模拟http请求
telnet Windows系统自带的访问页面命令 首先打开控制面板点击卸载程序 打开windows功能 勾选 telnt 客户端 在打开cmd 命令 输入 telnt www.baidu.com 8 ...
- springMVC_05结果跳转方式
一.总结 总共有四个, 1.设置ModelAndView的值,根据view和视图解析器跳转到指定的页面 2.通过servletapi对象来实现,不需要视图解析器 3.通过springmvc来实现转发和 ...
- 【Java每日一题】20170117
20170116问题解析请点击今日问题下方的“[Java每日一题]20170117”查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; import jav ...
- 当前主流电脑的BIOS调出键
[组装电脑主板] 主板品牌 启动按键 华硕主板 F8 技嘉主板 F12 微星主板 F11 映泰主板 F9 梅捷主板 ESC或F12 七彩虹主板 ESC或F11 华擎主板 F11 斯巴达 ...
- 百度前端学院-基础学院-第七天到第八天之BFC
1.BFC简介 BFC全称"block formatting context",中文为“块级格式化上下文”.特征总之记住一句话: BFC元素特征表现原则就是:内部元素无论怎么翻江倒 ...
- springboot 开发 Tars
1,创建 springboot 项目,并在启动类添加 @EnableTarsServer 注解 @SpringBootApplication @EnableTarsServer public clas ...
- Android为TV端助力 转载:内存泄露与内存溢出的区别
内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory:比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出. ...
- 微信小程序 text属性设置 WXSS样式
>微信小程序的布局css样式 参考自 珺L 文字 width: fit-content;font-size:20px; /*设置文字字号*/color:red; ...
- leetcode-14最长公共前缀
leetcode-14最长公共前缀 题目 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower& ...
- WiFi的名词缩写
http://blog.csdn.net/jayxujia123/article/details/12842295 无线网络最初采用的安全机制是WEP(有线等效私密),但是后来发现WEP是很不安全的, ...