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

[经验分享] 企业轻量级自动化运维工具—ansible(常见的错误解决,免秘钥互信,常用的模块)

[复制链接]

尚未签到

发表于 2018-7-29 09:34:04 | 显示全部楼层 |阅读模式
企业轻量级自动化运维工具—ansible
  1.ansible简介
  ansible是“Ansible is Simple IT Automation”——简单的自动化IT工具。它可以做到自动化部署APP;自动化管理配置项;自动化的持续交付;自动化的(AWS)云服务管理。可实现多节点的软件部署,执行特定任务并进行配置管理。
  2.安装前准备
  1.准备三台主机
  192.168.122.22        服务端
  192.168.122.21          客户端
  192.168.122.18        客户端
  2.时间同步
  3.关闭防火墙和SELinux
  3.安装
  1.配置yum源
  [root@localhost ~]# yum install -y http://mirrors.aliyun.com/centos/7.3.1611/extras/x86_64/Packages/epel-release-7-9.noarch.rpm
  2.安装
  [root@localhost ~]# yum install -y ansible
  3.查看帮助
  [root@localhost ~]# ansible –h
  4.查看版本
  [root@localhost ~]# ansible --version
  5.ansible模块
  ansible是指令核心部分,其主要用于执行ad-hoc命令,即单条命令。默认后面需要跟主机和选项部分,默认不指定模块时,使用的是command模块。安装完ansible后,发现ansible一共为我们提供了七个指令:ansible、ansible-doc、ansible-galaxy、ansible-lint、ansible-playbook、ansible-pull、ansible-vault 。
DSC0000.png

  1.列出所有已安装的模块
  [root@localhost ~]# ansible-doc –l
  2.查看某一个模块的用法
  [root@localhost ~]# ansible-doc –h
  [root@localhost ~]# ansible-doc -s yum           //查看yum的用法
  3.ansible-playbook
  该指令是使用最多的指令,其通过读取playbook 文件后,执行相应的动作。
  4.配置hosts和group
  192.168.122.22      root用户                   密码123456
  192.168.122.18        user1用户       密码user1
  192.168.122.21        user2用户       密码123           端口2222
  [root@localhost ~]# vim /etc/ssh/ssh_config                   //改变端口的文件
  [root@localhost ~]# systemctl restart sshd            //重启服务
  [root@localhost ~]# vim hosts         //默认的hosts文件在/etc/hosts里,这里我们可以用-i来指定路径
DSC0001.png

  这里我们查看时会报错是因为它没有加载到自身。有三种解决办法。
  方法一:
  1.重新连接自己
  [root@localhost ~]# ssh 192.168.122.22
DSC0002.png

  2.exit登出
  [root@localhost ~]# exit
  3.重新执行
DSC0003.png

  此时会发现执行成功。这是因为多了一个文件
DSC0004.png

  方法二:
  在服务端:进行ssh连接时,可以使用-o参数将StrictHostKeyChecking设置为no,使用ssh连接时避免首次连接时让输入yes/no部分的提示。
  [root@localhost .ssh]# vim /etc/ansible/ansible.cfg
  将#ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s  修改为ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no
DSC0005.png

  方法三:
  [root@localhost .ssh]# vim /etc/ansible/ansible.cfg
  将#host_key_checking = False的#去掉。
DSC0006.png

  5.使用all查看hosts中所有机器的情况
DSC0007.png

DSC0008.png

  6.ansible的配置文件
  [root@localhost ~]# vim /etc/ansible/ansible.cfg
  7.定义多个主机与组可以进行与或非的逻辑关系运算
  :或         !非         &与
  8.ssh的免秘钥互信
  在192.168.122.22上操作
DSC0009.png

  [root@localhost ~]# ssh-copy-id 192.168.122.22       //给自己拷
  验证是否成功
DSC00010.png

  6.ansible常用模块
  1.ping模块:测试主机是否能ping通
DSC00011.png

  2.setup模块:获取主机信息
  [root@localhost ~]# ansible-doc -s setup           //查看帮助
  [root@localhost ~]# ansible localhost -m setup         //查看内存信息
  [root@localhost ~]# ansible -i hosts arethon -m setup    //查看所有信息
  [root@localhost ~]# ansible -i hosts arethon -m setup -a 'filter=ansible_*ipv4'                                         //过滤ipv4的信息
  3.file模块:远程主机上的文件操作
  [root@localhost ~]# ansible-doc -s file            //查看帮助
  [root@localhost ~]# ansible localhost -m file -a 'src=/etc/hosts dest=/tmp/hosts state=link' 链接
DSC00012.png

  查看:
DSC00013.png

  4.copy模块
  [root@localhost ~]# ansible-doc -s copy       //查看帮助
  [root@localhost ~]# ansible -i hosts arethon -m copy -a 'src=test.txt dest=/tmp'                   //把test.txt文件拷贝到另外两台主机上
  5.command模块
  [root@localhost ~]# ansible -i hosts 192.168.122.18 -a 'df -h'  //查看192.168.122.18的磁盘
DSC00014.png

  执行已有命令时则自动跳过所有,结束。
DSC00015.png

运维网声明 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-542851-1-1.html 上篇帖子: 利用ansible一键化部署nfs&rsync并实时同步 下篇帖子: Ansible playbook 批量修改服务器密码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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