ansible自动化部署nginx艾艾贴
1.ansible的安装
(1)准备两台机器,分别 IP为114.67.232.214,主机名为centos100
IP为114.67.233.22,主机名为centos101
(2)需要在centos100上安装ansible,直接使用yum安装:yum install ansible
(3)设置密钥认证
在centos100上操作:ssh-keygen
ssh-copy-id -i /root/.ssh/id_rsa.pub 114.67.233.22
测试成功:
[root@centos100 ~]# ssh 114.67.233.22
Last login: Mon Jul 9 17:36:24 2018 from 1.119.132.165
Welcome to JCLOUD Elastic Compute Service
[root@centos101 ~]# logout
Connection to 114.67.233.22 closed.
(4)vim /etc/ansible/hosts
[web]
114.67.232.214
114.67.233.22
说明:在此文件中增加上述内容。web为主机组名字,自定义的,下面的两个IP为组内的机器IP
vim /etc/ansible/ansible.cfg
host_key_checking = False 取消这一行的注释。(打开的理由:如果有台被管节点重新安装系统并在know_hosts中有了与之前不同的密钥信息,就会提示一个密钥不匹配的错误信息,直到被纠正为止。
在使用ansible时,如果有台被管节点没有在know_hosts中被初始化,将会在使用Ansible或定时执行ansible时提示对key信息的确认)
##################################
playbook 实战-nginx 安装 1
(1)思路:先在一台机器上编译安装好nginx,打包,然后再用ansible去下发
tar zxf nginx-1.8.1.tar
cd nginx-1.8.1
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
yum install -y pcre-devel openssl-devel gcc 解决依赖,缺少什么装什么
make
make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ 做个软连接
nginx -t 检查语法错误
nginx 启动nginx
此时nginx安装完成
(2)cd /etc/ansible
mkdir nginx_install
cd nginx_install
mkdir -p roles/{common,install}/{handlers,files,meta,tasks,templates,vars}说明:roles目录下面有两个角色,common为一些准确操作,install为安装nginx的操作。每个角色下面又有几个目录,install为安装nginx的操作,每个角色下面又有几个目录,handlers下面是当发生
改变时要执行的操作,通常用再配置文件发生改变,重启服务。files为安装时用到的一些文件,meta为说明信息,说明角色依赖等信息,tasks里面是核心的配置文件,templates通常存一些配置
文件,启动脚本等模板文件,vars下为定义的变量。
###################################
playbook 实战-nginx 安装 2
(1)需要事先准备好用到的文件,具体如下:
在一台机器上事先编译安装好nginx,配置好启动脚本,配置好配置文件。安装好后,我们需要把nginx目录打包,并放到/etc/ansible/nginx_install/roles/install/files 下面,名字为nginx.tar.gz cd /usr/local tar czvf nginx.tar.gz --exclude "nginx.conf" --exclude "vhost" nginx/ mv nginx.tar.gz /etc/ansible/nginx_install/roles/install/files 启动脚本,配置文件都要放到/etc/ansible/nginx_install/roles/install/templates下面 cp nginx/conf/nginx.conf /etc/ansible/nginx_install/roles/install/templates cp /etc/init.d/nginx /etc/ansible/nginx_install/roles/install/templates/ (我没加)cd /etc/ansible/nginx_install/roles 定义common的tasks,nginx是需要一些依赖包的 vim ./common/task/main.yml - name: install initializtion require softwareyum: name="pcre-devel,oepnssl-devel,gcc" state=installed
#####################################
playbook 实战-nginx 安装 3
(1)定义变量
vim /etc/ansible/nginx_install/roles/install/vars/main.yml
nginx_user: www
nginx_port: 80
nginx_basedir: /usr/local/nginx
(2)首先要把所有用到的文档拷贝到目标机器
vim /etc/ansible/nginx_install/roles/install/tasks/copy.yml- name: Copy Nginx Software
copy: src=nginx.tar.gz dest=/tmp/nginx.tar.gz owner=root group=root - name: Uncompression Nginx Software
shell: tar zxf /tmp/nginx.tar.gz -C /usr/local/ - name: Copy Nginx Config
template: src=nginx.conf dest={{ nginx_basedir }}/conf/ owner=root group=root mode=0644
######################################
playbook 实战-nginx 安装4
接下来会建立用户,启动服务,删除压缩包
vim /etc/ansible/nginx_install/roles/install/tasks/install.yml- name: Create Nginx User
user: name={{ nginx_user }} state=present createhome=no shell=/sbin/nologin - name: Start Nginx Service
shell: /usr/local/nginx/sbin/nginx - name: Add Boot Start Nginx Service
shell: chkconfig --level 345 nginx on - name: Delete Nginx compression files
shell: rm -fr /tmp/nginx.tar.gz
##############################
playbook 实战-nginx 安装 5
再创建main.yml并且把copy和install调用
vim /etc/ansible/nginx_install/roles/install/tasks/main.yml
- name: Create Nginx User
- include: copy.yml
include: install.yml
到此两个roles: common和install就定义完成了,接下来要定义一个入口配置文件vim /etc/ansible/nginx_install/install.yml
- hosts: centos101
remote_user: root
gather_facts: True
roles- common
- install
- hosts: centos101
- name: Copy Nginx Software
ansible自动化部署nginx艾艾贴相关推荐
- ansible 发部署nginx以及更新、回滚
ansible 发部署nginx以及更新.回滚 ansible 和 saltstack 一样都是基于 Python 开发的,是比 puppet 和 saltstack 更轻量级的运维自动化工具. 一: ...
- K8S实战集训第一课 Ansible自动化部署k8s、弹性伸缩、Helm包管理、k8s网络模型介绍
Ansible自动化部署K8S集群 一.Ansible自动化部署K8S集群 1.1 Ansible介绍 Ansible是一种IT自动化工具.它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部 ...
- ansible自动化部署(一)
ansible自动化部署 最近因为工作需要学习了ansible,把这几天所学的东西做了个总结,和大家分享一下: 1.什么是ansible?ansible能干什么? ansible是新出现的自动化运维工 ...
- Jenkins+Gitlab+Ansible自动化部署(四)
Jenkins+Gitlab+Ansible自动化部署(2021-08-11) 一.Jenkins Linux Shell 集成 登录Jenkins web管理页,点击新建任务 添加描述信息 添加构建 ...
- Ansible自动化部署配置实践(实现TDEngine集群的自动化部署)
一.说明 Ansible是一款基于Python的自动化运维,用于发布.管理和编排计算机系统的工具.而且可以支持批量系统配置.批量部署运维.批量运行命令等功能. 这里以TDEngine的集群部署为例, ...
- ansible自动化部署
ansible通过模块实现批量管理及部署服务器,功能有模块实现 ansible无需在被控端安装agent/client,因为ansible是通过ssh分发ad-hoc(单条指令)或者palybook( ...
- ansible vim_Vim插件,使用Ansible自动化部署策略,Pelican入门,Linux,Joplin,Python以及更多新鲜读物
ansible vim 上周,有关Vim,Ansible,Python,Joplin和RetroPie的复古游戏的文章成为读者的最爱,此外,我们还汇总了一些最受欢迎的Linux和开源备忘单 . 您想在 ...
- gitlab与jenkins的自动化部署(通过webhook与ansible)
gitlab与jenkins的自动化部署(通过webhook与ansilble) 1.部署介绍 gitlab服务器:192.168.1.49:80 jenkins服务器:192.168.1.49:81 ...
- 自动化工具后起之秀Ansible的部署实践
本文转自微信号EAWorld.扫描下方二维码,关注成功后,回复"普元方法+",将会获得热门课堂免费学习机会! 从早期手动加脚本的部署方式,到后来自动化工具(chef, puppet ...
最新文章
- DevOps火爆,招人却太难了!
- 系统计算机大小怎么更改,调整设置电脑图标大小的方法
- reshape2 数据操作 数据融合( cast)
- 【Tomcat】解决GET方式传递的参数(URL中的参数)乱码问题
- 如何将 DateTime 转成 UnixTime ?
- Oracle TNS-12535: TNS: 操作超时
- if 语句 写了return 报错
- LaTeX 引用表格、照片、公式的时候自动添加 table,fig,equ
- 联想教学用计算机,联想多媒体电子教室解决方案
- 蓝绿色——三色配色篇
- 【工商银行科技菁英计划笔试】压缩字符串
- 51单片机的红外遥控
- OSChina 周六乱弹 ——揭秘后羿怎么死的
- IOS简单的实现手机震动的提示
- org.apache.jasper.el.ELContextImpl cannot be cast to org.apache.jasper.el.ELContextImpl
- mi4a android tv,小米电视4A精简系统教程
- tkinter天气查询可视化
- java.打印菱形_利用java程序打印空菱形
- 团队管理5--技术管理如何兼顾技术
- 中国博客网告别免费午餐 用户数据清除延至7月1日
热门文章
- UnityShader初级篇——渐变纹理
- onlyoffice转换html,CentOS7安装onlyoffice实现word的在线预览和编辑
- dll注册加载失败解决方法,请确保二进制的解决办法(无数踩坑试出来的)
- 令人头疼的优化问题——多目标规划问题matlab求解
- 如何生成题注和表注目录
- 电视盒子和机顶盒有什么区别?哪个更值得买?
- 目标检测—RCNN系列
- (1小时数据结构)数据结构c++描述(十九) --- 最大左高树
- 数据库课程设计-职工工资管理系统
- 盖泽尔智力测试软件,宝宝聪明不聪明?只需测一测,不用去医院,家长在家轻松筛查...