可以通过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本地搭建的更多相关文章

  1. Jenkins+Ansible+Gitlab自动化部署三剑客

    一.gitlab安装 环境:centos 7 x64 1.关闭防火墙 systemctl stop firewalld systemctl disable firewalld 2.禁用selinux ...

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

    实际操作 准备linux初始环境 关闭防火墙 systemctl stop firewalld 开机自己关闭 systemctl disable firewalld 设置安全配置 为关闭 vim /e ...

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

    后面需要shell基础,目前没有,等有了,再更

  4. Jenkins Ansible GitLab 自动化部署

    Jenkins Ansible GitLab 自动化部署 DevOps https://www.cnblogs.com/yangjianbo/articles/10393765.html https: ...

  5. Jenkins+maven+gitlab自动化部署之基础环境部署(一)

    从一个二线城市,来到上海,刚入职,老大就给任务,为了减少开发打包部署时间,需要搭建一套自动化部署环境.接到任务后,赶紧上网查找资料,以及了解jenkins作用等等,用了一周时间,了解了个大概,由于都是 ...

  6. Jenkins+maven+gitlab自动化部署之docker发布sprint boot项目(七)

    Jenkins发布docker应用与发布java应用配置基本一致,需要配置Dockerfile及构建的步骤,步骤如下: 1.jenkins主机构建应用为jar包 2.jenkins主机把生产的jar包 ...

  7. Jenkins+maven+gitlab自动化部署之前端构建发布(六)

    前端项目构建,需要在jenkins主机部署node服务,网上有说介绍说安装对应的nodejs插件进行前端项目构建,我这里是直接调用系统npm命令,进行前端打包.具体node部署参考:Centos7部署 ...

  8. Jenkins+maven+gitlab自动化部署之构建Java应用(五)

    前面几篇文章介绍jenkins部署以及配置,接下来我们,就介绍下如何使用jenkins发布应用. 1)新建项目 jenkins首页,点击左上新建任务,出现下图,填写对应信息,然后点击确定: 2)项目参 ...

  9. Jenkins+maven+gitlab自动化部署之Jenkins部署(三)

    本章开始正式搭建Jenkins: 公司现在使用的jenkins版本是2.150.3,但是本次实验安装的版本我们选择最新的 2.164.3(当然,当你阅读这篇文章时,此版本已经不是最新),jenkins ...

随机推荐

  1. C#如何通过属性名称反射出属性本身

    A a = new A(); Type t = typeof(A); var v1 = t.GetField("n").GetValue(a);//获取字段值,你的类A.n是字段, ...

  2. 微信wx.request

    官方 wx.request 代码,Post 没成功过,使用Get 方式成功了. wx.request({ url: 'test.php', //仅为示例,并非真实的接口地址 data: { x: '' ...

  3. 精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解!

    原文:https://github.com/Chalarangelo/30-seconds-of-code#anagrams-of-string-with-duplicates 作者:Chalaran ...

  4. 小tips:JS操作数组的slice()与splice()方法

    slice(start, end) slice()方法返回从参数指定位置开始到当前数组末尾的所有项.如果有两个参数,该方法返回起始和结束位置之间的项,但不包括结束位置的项. var colors = ...

  5. Tomcat post参数长处理

    如下图所示:增加maxPostSize="-1"属性即可

  6. [性能调优]PeopleSoft Trace 分析工具 - TraceMagic

    PeopleSoft Trace 文件包含大量的信息,在前面文章讲解过如何查看trace日志文件,这边文章介绍一个工具可以很好的分析trace日志文件. TraceMagic 是由oracle开发的一 ...

  7. SuperMap-iServer过滤请求返回值

    目的: iServer发布的arcgis地图服务中,由于tileinfo参数为null,导致用arcgis-ios客户端开发的APP闪退.通过过滤器将get请求的返回值修改 代码: package c ...

  8. NDK中使用pthread多线程中自己写的一个BUG

    在使用pthread进行NDK中的多线程开发时,自己写了一个BUG, void *darkGrayThread(void *args) { ThreadParam *param = (ThreadPa ...

  9. C# 简单实现直线方程,抛物线方程

    本例子是简单的在WinForm程序中实现在坐标系中绘制直线方程,抛物线方程,点.重新学习解析几何方面的知识.仅供学习分享使用,如有不足之处,还请指正. 涉及知识点: 直线方程的表达方式:一般表达式Ax ...

  10. 解决Chrome与jQuery菜单兼容问题

    题外,Chrome最近在耗电量方面超过了Edge,不过内存占用还是高啊,开发时偶尔用用.这不,http://jqueryui.com/menu/的官方菜单都支持的不好,改改吧! 打开jquery-ui ...