Ansible自动化运维

一 安装Ansible

1.更改名字(双节点)

在这里插入图片描述

2. ansible-01节点安装epel-release

在这里插入图片描述

3.安装ansible前先关闭防火墙,selinux等服务

(防火墙这里是friewalld,selinux立即生效是seteforce 0)
在这里插入图片描述

4.配置主机映射文件(双节点)在这里插入图片描述

5. 01节点安装ansible

在这里插入图片描述

6.双节点配置免密

(ssh命令)
在这里插入图片描述

7.再服务器节点(01节点)的ansible的配置文件中(vi /etc/ansible/hosts)增加点东西(即主机群)

(添加完成后,再按照第六不把127.0.0.1设置免密)
在这里插入图片描述

二 Ansible的使用

1.远程执行命令

ansible远程执行命令ansible+主机ip或者组 -m +模块名 -a ‘命令’:测试命令(查看主机名)

本地主机测试在这里插入图片描述### 远程主机测试

在这里插入图片描述

批量测试主机组的主机名(即主机群)

在这里插入图片描述

shell模块测试(查看主机名)

在这里插入图片描述

ansible拷贝文件或者目录:ansible+主机名 -m copy模块 -a “src源地址() + dest目标地址 + 所属用户 + 所属组 + 权限”

在这里插入图片描述

如果只能目标目录不存在他会自动创建

在这里插入图片描述
在这里插入图片描述

如果拷贝的是文件,dest指定名字和源文件名字不同且不是已存在目录则相当于拷贝过去并重命名

在这里插入图片描述
在这里插入图片描述
相反,dest是目标机上已存在目录就会把文件拷贝到该目录下面在这里插入图片描述
在这里插入图片描述

testhost(主机群)拷贝测试

在这里插入图片描述
结果在这里插入图片描述
在这里插入图片描述

ansible远程执行脚本:编写一个脚本并发送到主机/远程主机上

在这里插入图片描述
在这里插入图片描述
远程执行脚本:在这里插入图片描述
在这里插入图片描述
shell还支持管道符,例在这里插入图片描述

ansible管理任务计划:ansible +主机 -m +模块 -a “name=‘任务名称’ + job='命令 + 创建的目录和文件‘ 时间"例定时创建文件:

在这里插入图片描述
在这里插入图片描述
删除任务计划:(只需要再名字后面加state=absent)在这里插入图片描述
(文件为空就是删除成功了)
在这里插入图片描述

ansible安装rpm包/管理服务:(ansible testhost(主机)m模块 -a “name=安装模块的名字(服务的名字)

在这里插入图片描述
ansible命令远程启动httpd服务,并设置开机自启(ansible+主机 -m service模块 -a "name=服务名称 + state=启动/关闭 + enable=yes/ no”)
state=started就是启动成功了在这里插入图片描述在这里插入图片描述
ansible文档的使用:ansible-doc -l 列出所有模块;ansible-doc cron查看指定模块的文档

ansible playbook的使用:(后缀必须是yml;运行playbook的时候要加绝对路径)

在这里插入图片描述
结果在这里插入图片描述
在这里插入图片描述
第二种:(创建用户)在这里插入图片描述
结果在这里插入图片描述
ansible-palybook中的循环:
在这里插入图片描述
结果:在这里插入图片描述
在这里插入图片描述

三。ansible-playbook实战安装nginx(1-3)

1.本机(01节点)安装nginx

1:先在本机编译安装nginx:本机下载nginx的安装包在这里插入图片描述
解压安装包:在这里插入图片描述
安装依赖包:(双节点)在这里插入图片描述
进入到nginx目录下进行编译在这里插入图片描述
,完成后安装在这里插入图片描述
然后用echo $?命令检测有无错误,,返回零就是没有;
接下来是配置文件(下面是文件一部分)在这里插入图片描述
配置nginxconf 文件(这里文件中的中文要删除)在这里插入图片描述
检查一遍有没有错误:(这样是没有错误的)在这里插入图片描述
启动nginx服务(这里可能会报权限不够,给权限就可以了)在这里插入图片描述
nginx成功以后是这样的在这里插入图片描述

2.编写配置文件

1.创建目录文件,打包nginx,并移动到对应目录

在这里插入图片描述
2.打包nginx:这里是把/usr/local/下的nginx打包(打包命令tar -zcvf nginx.tar.gz nginx/)
在这里插入图片描述
3.然后把这个包移动到file目录下在这里插入图片描述
4.把nginx的配置文件复制到install的templates下在这里插入图片描述
5.编译安装文件也要复制到templates下在这里插入图片描述

ansible-playbook nginx的文件编辑:创建main.yml文件

1.(在/etc/ansinble/nginx_install/roles/common/tasks/目录下编译)在这里插入图片描述
2.然后再在install目录下的vars下创建main.yml在这里插入图片描述
3.在install/tasks下创建copy脚本在这里插入图片描述
4.在install/tasks下编译install.yml:在这里插入图片描述
5.创建调用文件(还是在install/tasks文件下):在这里插入图片描述
6.最后在nginx_install目录下编译执行文件在这里插入图片描述
7.执行nginx安装和结果:在这里插入图片描述
结果:在这里插入图片描述
在这里插入图片描述

ansible-playbook管理配置文件:

创建目录:

在这里插入图片描述
1.没有虚拟主机vhosts目录,所以要在/usr/local/nginx/conf目录下新建一个在这里插入图片描述
2.在vhosts目录下创建1.conf(文件名随意),再在上级目录(/usr/local/nginx/conf)修改一下nginx.conf文件在这里插入图片描述
3.(31节点也要修改配置文件);把虚拟主机和配置文件复制到cp /etc/ansible/ nginx_config/roles/new/files目录下(-r参数是可以把子文件一起复制)
在这里插入图片描述
4.创建vi文件:在roles/new/ vars下创建main.yml文件(定义变量)在这里插入图片描述
5.在roles/new/handlers下创建:main(定义重新加载nginx服务)在这里插入图片描述
6.在roles/new/tasks下创建main内容:(核心任务文件)在这里插入图片描述
最后在定义个入口配置文件:(在/etc/ansible/ nginx_config下创建)在这里插入图片描述
执行 ansible-playbook /etc/ansible/ nginx_config/update.yml :在这里插入图片描述
回滚:使用rsync把new里面的文件内容发送到old上(-a使用递归方式传送文件,并保留属性和权限;-v显示过程):(没有rsync命令的自行下载)
在这里插入图片描述
定义回滚入口配置(在/etc/ansible/ nginx_config下配置):在这里插入图片描述
执行 ansible-playbook /etc/ansible/ nginx_config/rollback.yml 命令:在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值