[首页]
[文章]
[教程]
首页
Web开发
Windows开发
编程语言
数据库技术
移动平台
系统服务
微信
设计
布布扣
其他
数据分析
首页
>
其他
> 详细
Ansible自动化运维
时间:
2019-10-15 00:36:28
阅读:
103
评论:
0
收藏:
0
[点我收藏+]
Ansible中使用的不同角色(使用者,Ansible工具集,作用对象)
lnventory是Ansible管理主机信息的配置文件,默认存放在/etc/ansible/hosts中。
Ansible工具集包含(lnventrol,Modules,Pluginx和APL)
lnventrol:管理主机的清单
Modules:执行命令模块
APl:接口
Ansible:核心执行工具
直接实验!
三台linux服务器,其中一台Ansible服务器。
分别为192.168.1.1 192.168.1.2 192.168.1.3
以一台为例,关闭防火墙,selinux,
服务器上配置如下:
一,yum安装Ansible
二,进入配置文件加上节点ip
vim /etc/ansible/hosts
管理的主机ip
三,创建ssh免交互式登录(就是直接登录不需要密码)
(1)从ansible主机上生成密钥对
(2)复制公钥到俩个要管理的主机(这里就演示一个)
然后输入:ssh 192.168.1.2直接就能切换过去,不需要密码
(3)检查所有之际是否存活,命令如下
·
一般会用三种颜色来表示执行的结果:红色,绿色
其中:红色表示执行过程有异常,表示执行后目标有变化,绿色表示执行成功且没有对目标主机做修改。
(4)command模块
command模块在远程主机执行命令,不支持管道符,重定向等shell的特性
显示出俩个主机的用户
(5)shell模块
shell模块在远程主机执行命令,和command模块的区别在于它支持shell特性,如管道符,重定向等
web是清单里面包括了俩个主机(可以多个,在清单里添加就可以)在俩太主机/tmp下创建了俩个HELLOW,txt的文件
(6)copy模块
用于复制指定主机的文件到别的主机
dest:指出目标文件的位置,
src:指出源文件的路径
在本主机上创建个目录直接复制到俩个节点上的/tmp下
(7)hostname模块
用于远程管理主机的主机名
把主机名改为了asd
(8)yum模块
用于对远程主机管理程序包前提要安装的主机必须配置好yum,这只是提供命令远程,比如安装http,命令如下,
state=(present,latest,absent )(安装,安装最新,卸载)
(9)service模块
用与管理远程主机上的服务,开启,关闭,查看或开机自启
(10)user模块
用于管理远程主机的用户账号比如创建用户,uid号,用户的组,用户的附加组
四,Playbook配置文件
编写脚本来管理远程主机
ansible脚本必须对齐
提前先修改一下配置文件:vim /etc/ansible/hosts
标准的
这是语法检测,显示下面的意思是没有错误
这是创建用户的脚本,如下:---
hosts: web1
remote_user: root
tasks:
name: adduser
user: name=user2 state=present
tags:
aaa
name: addgroup
group: name=root system=yes
tags:
bbb
hosts: web2
remote_user: root
tasks:
name: copy file to web
copy: src=/etc/passwd dest=/home
tags:
ccc
...
执行脚本
五,触发器
编写脚本更改远程主机的端口号并重新启动
hosts: web1
remote_user: root
tasks:
name: change port
command: sed -i ‘s/Listen\ 80/Listen\ 8080/g‘ /etc/httpd/conf/httpd.conf
notify:
restart httpd server
handlers:
name: restart httpd server
service: name=httpd state=restarted
...
六,角色
角色一般存放在/etc/ansible/roles/目录,比如编写一个创建数据库,在数据库中创建个表,
首先创建多个目录来存放
然后进入mariadb文件夹中的tasks创建一个脚本
内容为:
name: install mariadb
yum: name=mariadb-server state=present
name: move config file
shell: "[ -e /etc/my.cnf ]&& mv /etc/my.cnf /etc/my.cnf.bak"
name: provide a new config file
copy: src=my.cnf dest=/etc/my.cnf
name: reload mariadb
shell: systemctl restart mariadb
name: create database testdb
shell: mysql -u root -e "create database testdb;grant all on testdb.* to‘test‘@‘192.168.8.%‘ identified by ‘test123‘;flush privileges;"
notify:
restart mariadb
...
句号表示 -
然后进入hanglers文件夹中编写和脚本
内容为
name: restart mariadb
service: name=mariadb state=restarted
...
再进入files文件夹中复制mysql配置文件
最后进入ansible文件夹中创建脚本
最后启动脚本
俩个主机就有mysql数据库里面有一个testdb的表
实验完成
Ansible自动化运维
原文:https://blog.51cto.com/14400213/2442443
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年09月23日 (328)
2021年09月24日 (313)
2021年09月17日 (191)
2021年09月15日 (369)
2021年09月16日 (411)
2021年09月13日 (439)
2021年09月11日 (398)
2021年09月12日 (393)
2021年09月10日 (160)
2021年09月08日 (222)
最新文章
更多>
2021/09/28 scripts
2022-05-27
vue自定义全局指令v-emoji限制input输入表情和特殊字符
2022-05-27
9.26学习总结
2022-05-27
vim操作
2022-05-27
深入理解计算机基础 第三章
2022-05-27
C++ string 作为形参与引用传递(转)
2022-05-27
python 加解密
2022-05-27
JavaScript-对象数组里根据id获取name,对象可能有children属性
2022-05-27
SQL语句——保持现有内容在后面增加内容
2022-05-27
virsh命令文档
2022-05-27
教程昨日排行
更多>
1.
list.reverse()
2.
Django Admin 管理工具
3.
AppML 案例模型
4.
HTML 标签列表(功能排序)
5.
HTML 颜色名
6.
HTML 语言代码
7.
jQuery 事件
8.
jEasyUI 创建分割按钮
9.
jEasyUI 创建复杂布局
10.
jEasyUI 创建简单窗口
友情链接
汇智网
PHP教程
插件网
关于我们
-
联系我们
-
留言反馈
- 联系我们:wmxa8@hotmail.com
© 2014
bubuko.com
版权所有
打开技术之扣,分享程序人生!