打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Jenkins+Ansible+GitLab持续交付平台搭建-第4篇

这篇文章将继续给大家介绍Jenkins+Ansible+GitLab持续交付平台搭建。

Jenkins+Ansible+GitLab持续交付平台搭建-第1篇

Jenkins+Ansible+GitLab持续交付平台搭建-第2篇

Jenkins+Ansible+GitLab持续交付平台搭建-第3篇


Ansible playbooks常用模块介绍

File模块

#在目标主机创建文件或目标,并赋予其系统权限

name: create a file

 file: 'path=/root/foo.txt state=touch mode=0755 owner=foo group=foo'

-name:创建一个文件

file:声明调用的是一个file模块

path:定义需要在目标主机上创建一个root/ foo.txt

state=touch:定义我们创建一个文件

mode:给予创建的文件赋予权限

owner:文件的属组为foo用户

group:文件的属组为foo属组

Copy模块

#实现Ansible服务端到目标主机的文件传送

-name:create a file

copy: 'remote_src=no src=roles/testbox/file/foo.sh

dest=/root/foo.sh mode=0644 force=yes'

-name:使用一个文件

copy:

remote_src=no:声明将原Ansible主机端的文件传送到目标主机当中

src:声明源文件为该路径的文件夹

dest:将原地址的foo.sh传送到目标foo.sh

mode:给予创建的文件赋予权限

force:定义copy任务,强制执行

Stat模块

#获取远程文件状态信息

name: chenk if foo.sh exists

stat: 'path=/root/foo.sh'

register: script_stat

name:定义任务名称foo.sh是否存在

stat:声明任务模块调用的是stat

path:定义当前需要去获取的文件路径

register:将获取到文件信息传送到script_stat

Debug模块

#打印语句到Ansible执行输出

debug: msg="foo.sh exists"

 when: script_stat.stat.exists

debug:定义debug模块输出的语句内容为foo.sh exists

when:

如果foo.sh存在就是Ansible打印输出信息,不存在就不打印

Command/Shell模块

   #用来执行linux目标主机命令行

-name:run the script

command:  "sh /rootfoo.sh"

-name:run the script (推荐)

shell:  "echo 'test' > /root/test.txt "

Command/Shell编写可参考:http://zhangyongbo.iteye.com/blog/2428777

Template模块

#用来实现Ansible服务端到目标主机的jinja2模块传送

- name:write the nginx config file

template:src=roles/testbox/templates/nginx.conf.j2

dest=/ect/nginx/nginx.conf

name:定义一个任务名称编写nginx配置文件

template:声明语句调用的是template模块

src:定义原模板文件在/roles../ nginx.conf.j2

dest:目标目录,将src文件传送到/ect/.../ nginx.conf重命名为nginx.conf

Packaging模块

#调用目标主机系统包管理工具(yum,apt)进行安装

- name:ensure nginx is at the latest version

 yum:pkg=nginx state=latest     ---------->CenOS&RedHat系统

- name:ensure nginx is at the latest version

apt:pkg=nginx state=latest       ---------->Debian&Ubuntu系统

Service模块

#管理目标主机系统服务

- name:start nginx service

 service:name=nginx state=started

编写完成的Ansible Playbooks模块

Ansible playbooks常用模块案例操作

1.使用Git Bash

1$ ssh root@47.98.198.241
2# su - deploy
3
4#启动py3.6的环境
5# source  .py3-a2.5-env/bin/activate
6
7#加载Ansible2.5版本
8# source  .py3-a2.5-env/ansible/hacking/env-setup
9
10#检查是否加载py3.6环境以及在该py3.6环境下加载了ansible-playbook 2.5
11# ansible-playbook --version

2.ssh登录到目标主机

1# ssh root@47.98.198.241
2#创建用户,完成目标主机预配置工作
3# useradd foo
4# mkdir /etc/nginx
5# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
6# exit

3.切换Ansible用户下

#编辑testbox主任务文件

# vi roles/testbox/tasks/main.yml

#测试编写的file模块任务,执行deploy.yml是否成功

# ansible-playbook  -i inventory/testenv ./deploy.yml

运到错误:

还有这个错误:

解决办法:该目标主机没有foo用户,选择赋予其他用户权限和组

#测试成功Ansible playbooks常用的模块介绍

#已经创建ok的文件

3.切换Ansible用户下

1#使用deploy用户创建
2# mkdir roles/testbox/files
3
4#编辑foo.sh并写入测试脚本
5# vi roles/testbox/files/foo.sh
6echo 'this is test script'
#测试ok的返回结果

4.添加Stat模块任务 

1#添加stat模块和debug模块
2# vi roles/testbox/tasks/main.yml
3
4- name: chenk if foo.sh exists
5 stat: 'path=/root/foo.sh'
6 register: script_stat
7
8- debug: msg="foo.sh exists"
9 when: script_stat.stat.exists
10
11#测试是否成功
12# ansible-playbook -i inventory/testenv ./deploy.yml

5.添加Stat模块任

1#添加command模块远程执行主机
2# vi roles/testbox/tasks/main.yml
3
4- name: run the script
5command:  "sh /root/foo.sh"
6
7#测试是否成功
8# ansible-playbook -i inventory/testenv ./deploy.yml

6.添加一个Template模块任

1#编辑inventory/testenv文件添加参数值
2
3server_name=test.example.com
4port=80
5user=deploy
6worker_processes=4
7max_open_file=65505
8root=/www

7.创建templates目录文件

1# mkdir roles/testbox/templates
2
3# vi roles/testbox/templates/nginx.conf.j2
4
5# vi roles/testbox/tasks/main.yml
6
7# ansible-playbook -i hosts site.yml


此系列会在我们TestOps公众号定期更新,请随时关注哟~

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Ansible
万字干货-提升十倍运维效率-Ansible入门到精通
243张图片为你解析Linux轻量级自动运维化工具Ansible
Ansible超详细使用指南
如何在半小时搭建一个简单的日志分析平台?
【Jenkins Ansible Gitlab 自动化部署三剑客】学习笔记-第五章 5-1~5-5 Freestyle Job实战
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服