可以通过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. SqlServer 技术点总结(持续更新)

    本文是用于记录自己平时遇到的一些SQL问题或知识点,以便以后自己查阅,会持续的更新,增加内容.发在博客园也可以和各位博友共同学习交流,如文中记录的有错误之处希望指出,谢谢. 一.用SQL语句调用作业 ...

  2. SpringBoot 2.0 报错: Failed to configure a DataSource: 'url' attribute is not specified and no embe

    问题描述 *************************** APPLICATION FAILED TO START *************************** Description ...

  3. 【JDK和Open JDK】平常使用的JDK和Open JDK有什么区别

    注意到这个问题,是在CentOS7上安装JDK的时候,查找相关的资料,发现安装JDK之前都需要检查或卸载系统上原生的Open JDK,这才引起了注意. 到了这里,引用查到的一篇说明. 转自:http: ...

  4. python中的eval函数

    eval() 函数十分强大 -- 将字符串 当成 有效的表达式 来求值 并 返回计算结果 In [1]: eval("1 + 3") Out[1]: 4 In [2]: eval( ...

  5. matlab rank

    k =rank(A)    %a is matrix s = svd(A); tol = max(size(A))*eps(max(s)); r = sum(s > tol);

  6. [转] 快速部署Tomcat项目的Shell脚本

    为了做集群测试,在每台机器上装了3个tomcat,每次发布项目的时候都要反复敲一些命令,重启tomcat之前先检查tomcat进程有没有停掉,没有还要手动kill该进程. 发布次数多了,操作就比较繁琐 ...

  7. 教你搞定ElasticSearch(head)

    简介: ElasticSearch(以下简称ES)是一个基于Lucene构建的开源(open-source),分布式(distributed),RESTful,实时(real-time)的搜索与分析( ...

  8. Spring学习之旅(八)Spring 基于AspectJ注解配置的AOP编程工作原理初探

    由小编的上篇博文可以一窥基于AspectJ注解配置的AOP编程实现. 本文一下未贴出的相关代码示例请关注小编的上篇博文<Spring学习之旅(七)基于XML配置与基于AspectJ注解配置的AO ...

  9. error 2593 operator << 不明确的可能的解决方法

    编译Martinez算法时遇到该问题,提示重载的<<操作符调用不明确. 解决方法为:在cpp文件中将重载的该操作符的实现前添加完整的命名空间路径.

  10. JAVA代码根据经纬度范围计算WGS84与谷歌全球墨卡托包含的切片数目与拼接图像像素尺寸

    根据项目需求编写的代码. 适用场景:在网络地图上,比如天地图与谷歌地图,用户用鼠标在地图上拉一个矩形框,希望下载该矩形框内某一层级的瓦片数据,并将所有瓦片拼接成一个完整的,包含地理坐标的tif图像. ...