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

[经验分享] ansible安装配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-1-22 09:09:37 | 显示全部楼层 |阅读模式
环境准备
   yum -y install openssh-clients wget
  
rpm安装
   centos系统需要epel源,
  yum –y install epel-release
  yum –y install ansible # 默认安装在/etc/ansible/目录下
  
配置文件认识
    wKiom1iDD7WAs5lCAAAQOHmlka8637.jpg
  ansible.cfg : # 主配置文件
   wKiom1iDD7ay6xc1AACk97ZFFTk731.jpg
  hosts: # 主机,可以填ip或者主机名,注意这个webservers非常的重要和ansible.cfg配置文件有极大关系,以及下文要用这个
   wKiom1iDD7jw6kPhAABFOJLYFnk338.jpg
  roles: # 权限
  
配置密钥与被管理主机通信,通信方式为SSH方式
   在管理机也就是安装anbisle这个服务的机器上,生成ssh密钥,并把这个密钥复制给被管理机
  生成密钥: ssh-keygen -t rsa,默认在/root/.ssh/id_rsa
   wKiom1iDD7nhqSmZAADL6stAVmE344.jpg
  拷贝密钥到被管理机: ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.17.31.43
  如果有以下错误,则表示没有安装openssh-clients库,解决方法:yum -y install openssh-clients
   wKioL1iDD7mDgyqEAAAiKKQ-6_4894.jpg
  
使用ansible命令进行测试使用验证
   
命令格式:ansible <host-pattern> [-m module_name] [-a args] [options],如下:
      
ansible all -m ping
      
all 表示检测所有被管理机器, –m ping 表示使用ping这个模块,ping通了会返回一个pong值
           
命令作用:测试目标主机是否存活,如存活会返回success JSON格式的返回值,
            wKioL1iDFHqDOtX_AABzxm-OCDI007.jpg
  
常用命令介绍
   
ansible-doc:
      
作用:获取模块列表以及用法,类似linux  --help的作用
            wKioL1iDFHujtvUSAADCMys93WU711.jpg
  

ansible-doc –l:
      
作用:获取列表
           
运行此命令可能遇到遇到的错误,如下:
            wKioL1iDFHujbTorAACYm5GsNbY948.jpg
  


解决方法:
           sed -i 's/^#deprecation_warnings = True/deprecation_warnings = False/' /etc/ansible/ansible.cfg
  rm -f /usr/lib/python2.6/site-packages/ansible/modules/extras/cloud/misc/rhevm.py
  

ansible-doc –s:
      
作用:获取指定模块的使用方法,如ansible-doc –s ping
            wKioL1iDFHyQRp80AAA0u62qLKs912.jpg
  
命令格式
   
ansible  <host-pattern>  [-f forks] [-m module_name]  [-a args]
      
<host-pattern> # 在ansible.cfg配置文件中指明要管控哪些主机,这些主机可以用一个组的方式管控,如[webserver] [dbserver] ,all 设置所有
           
[-f forks] # 每一批管控多少个主机,默认貌似是5个
           
[-m module_name] # 指要用哪种模块进行管理操作,注意所有的操作必须要通过模块来指定
           
[-a args] # 指明模块所用参数是哪些,除了command模块是直接输出执行命名之外,一般是key-vaule格式
           
常用模块
   
command模块:
      
如:ansible webservers -m command -a "ls /var/log/",注意这个commad模块不支持管道命令(|),shell才支持。
            wKioL1iDGo-RVyhnAAB_V-YBjaQ861.jpg
  也可以省略这个commad命令不写,ansible webservers -a "ls /var/log/"
   wKiom1iDGpChEpnuAACETAQ6JRY275.jpg
  如给给远程主机添加用户:ansible webservers -a "useradd tomcat"
   wKiom1iDHcbRu_jBAAA8rjNefIE076.jpg
  到被管控机器上去看一下172.17.31.43是否添加成功:
   wKiom1iDHcfQBWhhAAF7veYIBT4979.jpg
   wKiom1iDHcjRJgSbAAA9yFzUGT8853.jpg
  

shell模块
      
作用: 远程主机在shell进程下运行命令,支持shell特性,支持管道
           
如给远程主机上的用户添加密码:ansible webservers -m shell -a "echo 123456 | passwd --stdin tomcat" --stdin 这个选项用于 从标准输入 管道读入新的密码
            wKiom1iDHx6R2i1qAABEOPGDMT0754.jpg
  

copy模块
      
作用:把当前主机文件复制到被管控主机机器上,可以指定mode(权限)、own(所属主)、group(所属组)
      
如:ansible all -m copy -a "src=/soft/test_ansible_copy_model.txt dest=/opt/ mode=755 owner=tomcat group=tomcat"
       wKioL1iDJj6g35sxAAB9kvaG1DM550.jpg
   wKioL1iDIoOwxIVeAAIlphzdwjc259.jpg
  注意-a后面的参数格式一定要对,不然会报如下错误:
   wKiom1iDIoTjqtttAAA7zW9-4lE186.jpg
  

cron模块
      
作用: 在被管控主机上制定crontab周期性计划任务
           
格式:ansible all -m cron -a "minute=*/10 job='/sbin/ntpdate 172.17.31.44 &> /dev/null' name=synctime"
        
minute=vaule  hour=vaule day=vaule month=vaule weekday=vaule job=vaule name=value(必须填写) state=vaule
                  同样的,命令参数不要写错了,写错了就会有以下红色提示:
   wKiom1iDJj-SS3WvAABAIPQIzg4744.jpg
  到被管控机器上看crontab -l 或者crontab -e :
   wKiom1iDJkCgdxgoAAFJvm43Bxc121.jpg
  也可以删除远控主机上的任务计划:ansible all -m cron -a "state=absent name=synctime"
  fetch模块
  作用:和copy模块相反,从被管控主机上拷贝文件到管控主机上
  如:ansible all -m copy -a "src=/opt/test_ansible_copy_model1.txt dest=/opt/test/ flat=yes"
  flat=yes作用:
  当dest=/opt/test/,test_ansible_copy_model1.txt会保存在/opt/test/目录下
  当dest=/opt/test,会拷贝test_ansible_copy_model1.txt文件,并命名为test
  file模块


运维网声明 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-331850-1-1.html 上篇帖子: ansible安装配置和基本使用 下篇帖子: ansible-playbook批量部署安装tomcat
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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