设为首页 收藏本站
查看: 1721|回复: 0

[经验分享] linux自动化运维平台ansible部署

[复制链接]

尚未签到

发表于 2018-7-28 13:47:59 | 显示全部楼层 |阅读模式
前言
  运维的发展方向,集中化,自动化,标准化,虚拟化,分布式。
  本文展示的就是自动化运维的发展方向的工具:ansible。ansible有很多优点,仅需要ssh和python即可使用,不需要客户端,功能强大,模块丰富,上手容易门槛低,基于python开发,更容易做二次开发。
  操作使用环境:
  

[root@luc ~]# cat /etc/redhat-release
  
CentOS Linux>  

  结构拓扑图
DSC0000.jpg


安装软件和其他准备工作
  可以源码安装,或者yum安装
  下面是个人使用的ansible 软件,解压后可以直接作为yum源使用
  链接: https://pan.baidu.com/s/1hFly3DnPS01ih60kSh5CIQ 密码: 6ge6
  宿主机:
  

[root@luc ~]# unzip ansible.zip                             //解压  
[root@luc ~]# mkdir -p  /var/ftp/yum/myyum
  
//主要是创建yum源目录,用ftp共享给其他主机使用,但是前提要有ftp服务,也可以使用http服务共享yum
  
[root@luc ~]# mv  ansible/\*  /var/ftp/yum/myyum
  
//把解压的文件拷贝到ftp共享的目录下
  

  主机:manager10
  

[root@manager10 ~]# yum-config-manager --add ftp://192.168.1.1/yum/myyum  
//添加新的yum
  
[root@manager10 ~]# yum clean all                    // 清除yum缓存
  
[root@manager10 ~]# yum repolist
  
源标识                         源名称                                           状态
  
192.168.1.1_yum_myyum_         added from: ftp://192.168.1.1/yum/myyum/            16
  
192.168.1.1_yum_rh7dvd_        added from: ftp://192.168.1.1/yum/rh7dvd/        4,620
  
repolist: 4,636
  
[root@manager10 ~]# yum -y install ansible               //用yum安装ansible
  
[root@manager10 ~]# rpm -qc ansible
  
//查看配置文件有哪些,实用技能,不知道配置文件软件也可以用这条命令查询配置文件
  
/etc/ansible/ansible.cfg
  
/etc/ansible/hosts
  
[root@manager10 ~]# vim /etc/hosts           //设置本机的DNS解析
  
192.168.1.10 manager10                            //ip地址和域名之间用空格隔开
  
192.168.1.20 nginx20
  
192.168.1.30 web30
  
192.168.1.40 web40
  
192.168.1.50 db50
  
192.168.1.60 db60
  
[root@manager10 ~]# ssh-keygen -t rsa    //创建密钥对,后面要用
  

  注:需要关闭selinux和firewalld

配置文件
  配置文件:
  /etc/ansible/ansible.cfg
  /etc/ansible/hosts
  可以按照如下修改配置文件。
  

[root@manager10 ~]# vim /etc/ansible/hosts  
[web]                //定义web组
  
web30  //组成员,可以使用域名或者ip地址,我把主机名和域名写成一样,方便记忆使用
  
web40
  
[db]                                     //定义db组
  
db50
  
db60
  
[app:children]            //定义父组app,及指定子组
  
web
  
db
  
[app:vars]        //父组app下所有成员,配置信息,包括登陆用户和密码
  
ansible_ssh_user="root"
  
ansible_ssh_pass="123456"
  
[nginx]
  
nginx20  ansible_ssh_user="root" ansible_ssh_pass="123456"
  //定义nginx主 ,配置内容分别表示:组成名名,登陆用户名,登陆密码。 还可以制定登陆端口ansible_ssh_port="22"
  
[root@manager10 ~]# vim /etc/ansible/ansible.cfg      //ansible 配置文件
  
host_key_checking = False
  
//61行的注释去掉,不读取/root/.ssh/known_hosts 文件,就不用首次登陆输入yes
  

ansible的使用
  ansible配置完成,不需要启动服务,可以直接使用。
  执行命令后的提示颜色,如果没有内容修改成功显示的颜色是绿色,如果内容修改并且成功显示颜色是橙色。
  

[root@manager10 ~]# ansible all --list-hosts  hosts (5):
  web30
  web40
  db50
  db60
  nginx20
  
//查看所有可以配置的主机,或者可以直接查看web,db。出现下面内容,没有报错就是没有问题。
  

  使用模块
  ansible命令格式
  ansible 主机分组  -m 模块  -a ‘命令和参数’
  使用ansible-doc  模块名   查看模块帮助信息
  ansible-doc -l   列出所有模块
  

[root@manager10 ~]# ansible all -m ping     //使用ping模块,查看是否在线  
web40 | SUCCESS => {                               //出现seccess就是成功了
  "changed": false,                                   //没有修改内容
  "ping": "pong"                                       //ping和pong是一对
  
}
  
[root@manager10 ~]# ansible all  -m authorized_key -a "user=root exclusive=true manage_dir=true key='$(< /root/.ssh/id_rsa.pub)'" -k
  
// 给所有主机部署密钥, -m module 模块    -a agrs 模块的参数    -k   ask需要输入密码
  

  常用模块:
  shell ,copy,yum,service
  

[root@manager10 ~]# ansible web -m shell -a "mkdir /root/aaaa"      //在web组下的web30和web40下创建/root/aaaa目录  
[root@manager10 ~]# ansible web -m shell -a "ls /root"    //验证创建情况
  
[root@manager10 ~]# ansible web -m shell -a "ls /root"
  
[root@manager10 ~]# ansible web -m copy -a "src=/root/test.txt dest=/root/"
  
//将本地文件复制到远程主机,拷贝文件夹时,src如果有“/“ 结尾拷贝目录下内容,和rsync类似
  
[root@manager10 ~]# ansible web -m yum -a "name="httpd" state=installed"   //安装httpd,删除是removed
  
[root@manager10 ~]# ansible web -m service -a "name="httpd" enabled="yes" state="started""      //开启httpd服务,开机自启
  
[root@manager10 ~]# yum -y install nmap        //安装扫描软件nmap
  
[root@manager10 ~]# nmap -sS 192.168.1.30,40     //使用nmap半开式扫描
  
Nmap scan report for web30 (192.168.1.30)
  
Host is up (0.000090s latency).
  
Not shown: 998 closed ports        //默认扫描前10000个端口
  
PORT   STATE SERVICE
  
22/tcp open  ssh          //ssh开启
  
80/tcp open  http        //web开启
  
MAC Address: 74:52:86:86:02:01 (Unknown)
  

  其实到现在ansible自动化运维平台部署基本完成,接下来就是ansible的灵活使用。

共勉:I hear and I forget. I see and I remember. I do and I understand!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-542612-1-1.html 上篇帖子: 项目实战10.1—企业级自动化运维工具应用实战-ansible 下篇帖子: 第二天,ansible源码学习
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表