Ansible安装配置

1、Ansible简介

ansible基于python开发,集合了众多优秀运维工具的优点,实现了批量运行命令、部署程序、配置系统等功能。默认通过SSH协议进行远程命令执行或下发配置,无需部署任何客户端代理软件,从而使得自动化环境部署变得更加简单。可同时支持多台主机并进行管理,使得管理主机更加便捷。主版本大概每2个月发布一次。

2、核心组件说明

Host Lnventory:记录了每一个由Ansible管理的主机信息,信息包括ssh端口,root帐号密码,ip地址等等。可以通过file来加载,可以通过CMDB加载Playbooks:YAML格式文件,多个任务定义在一个文件中,使用时可以统一调用,“剧本”用来定义那些主机需要调用那些模块来完成的功能.Core Modules:Ansible执行任何管理任务都不是由Ansible自己完成,而是由核心模块完成;Ansible管理主机之前,先调用core Modules中的模块,然后指明管理Host Lnventory中的主机,就可以完成管理主机。Custom Modules:自定义模块,完成Ansible核心模块无法完成的功能,此模块支持任何语言编写。Connection Plugins:连接插件,Ansible和Host通信使用

3、Ansible的优势

1.轻量级;

2.不需要安装客户端,通过sshd通信;

3.基于模块工作,配置更加简单,容易上手。

4.使用Python开发。

4、Ansible的安装和配置

4.1Ansible的安装

 [root@docker-02 ~]# yum install ansible

4.2Ansible的配置

 [root@docker-02 ~]# vim /etc/ansible/ansible.cfg 
 inventory =/etc/ansible/inventory
 roles_path =/data/ansible/roles
 remote_user =root

4.3创建文件夹

 [root@docker-02 ~]# mkdir -p /etc/ansible/inventory
 [root@docker-02 ~]# mkdir -p /data/ansible/playbooks
 [root@docker-02 ~]# mkdir -p /data/ansible/roles
 [root@docker-02 ~]# rm -rf /etc/ansible/host
 [root@docker-02 ~]# rm -rf /etc/ansible/roles

4.4配置inventory

 [root@docker-02 ~]# vim /etc/ansible/inventory/lvs_list
 [group]
 docker-03

4.5对group组,使用shell模块,执行hostname命令

 [root@docker-02 ~]# ansible group -m shell -a 'ip add'
 The authenticity of host 'docker-01 (172.17.120.50)'can't be established.
 ECDSA key fingerprint is SHA256:Lg+vWQTiAsfgFUcr+PGAWPUc2d4C1dzSjf25SSWYGho.
 ECDSA key fingerprint is MD5:01:00:72:55:c9:5d:b5:e4:82:e7:3c:8f:60:fc:37:95.
 Are you sure you want to continue connecting (yes/no)? docker-03 | CHANGED | rc=0>>
 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536qdisc noqueue state UNKNOWN group default qlen 1000
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500qdisc pfifo_fast state UP group default qlen 1000
   link/ether 02:00:38:b7:00:53 brd ff:ff:ff:ff:ff:ff
   inet 172.17.120.52/24 brd 172.17.120.255 scope global noprefixroute dynamic eth0
       valid_lft 2356288sec preferred_lft 2356288sec

5、执行Playbook

 [root@docker-02 playbooks]# vim /data/ansible/playbooks/centos-os-init.yml
 ---
 -hosts: group
 tasks:
    -name: upgrade all packages
     yum:
       name: '*'
       state: latest
 [root@docker-02 playbooks]# ansible-playbook /data/ansible/playbooks/centos-os-init.yml
 
 PLAY [group] *******************************************************************
 
 TASK [Gathering Facts] *********************************************************
 ok: [docker-03]
 ok: [172.17.1.151]
 ok: [172.17.1.150]

采用playbook的配置方式可以更加方便地对管理主机进行部署,可以对任务进行分类,包括像新装主机的初始化配置、安装应用程序、拷贝文件,修改权限等等。一路配置下了感觉非常方便快捷,上手很容易,确实是运维的一大利器,比puppet什么的不知道高明到哪里去了, 虽然我们公司用的仍然是puppet,但感觉还是Ansible方便好用啊。

关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。

有需要技术交流的小伙伴可以加我微信,期待与大家共同成长,本人微信:

最近有一些星友咨询我知识星球的事,我也想继续在星球上发布更优质的内容供大家学习和探讨。运维猫公众号平台致力于为大家提供免费的学习资源。知识星球主要针对于在这方便工作、对运维特别感兴趣、想往运维方面发展的小伙伴。大家可以加入星球,一起探讨工作中的疑惑、技术上的难题、以及未来的发展趋势。

为了保证星球的质量,知识星球每周会发表两篇文章(周三和周末)。

知识星球会不定期的为大家提供更优惠或者免费运维峰会门票的福利。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值