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

[经验分享] ansible实用命令

[复制链接]

尚未签到

发表于 2018-1-2 17:37:11 | 显示全部楼层 |阅读模式
  1、ansible批量增加sshkey脚本
  

#!/usr/bin/python  
#coding=utf-8
  
import pexpect
  
import sys
  
import os
  

  
#列表里面写入你要增加的服务器IP
  
servers = [
  
'xxxx@192.168.1.7',
  
'xxxx@192.168.1.11',
  
'ssss@192.168.1.3',
  
...
  
'xxxx@192.168.1.49'];
  

  
def sendPublicKey(servers):
  
for server in servers:
  
child = pexpect.spawn("ssh-copy-id -i /root/.ssh/id_rsa.pub %s" %(server))
  
index = child.expect(["yes/no","password","exist",pexpect.exceptions.EOF,pexpect.TIMEOUT])
  
if index != 0 and index != 1:
  
print("未向此服务器%s上传公钥" %(server))
  
child.close(force=True)
  
else:
  
print("开始上传公钥")
  
child.sendline('yes')
  
child.expect("password:")
  
child.sendline('szprize2018')
  
child.expect("added")
  
print("上传完毕")
  
print
  
print("全部上传完毕!")
  

  
sendPublicKey(servers)
  

  

  2、增加时,碰到异常IP无法发送密钥时处理:
  ssh-keygen -f "~/.ssh/known_hosts" -R 192.168.1.8
  删掉ssh生成的缓存
  3、ansible实用命令
  ansible常用的一些命令:
  ansible all -a "bash /mnt/script/push_svnup.sh"
  ansible all -s -a "ls /usr/bin/reivew"  使用sudo命令
  ansible all -m copy -a "src=/etc/ansible/hosts dest=/etc/ansible/hosts" 远程拷贝文件到目标服务器的上面去
  yum模块
  ansible all -m yum -a "name=httpd state=latest" 升级httpd
  ansible all -m yum -a "name=ntp state=installed" 安装包
  ansible all -m yum -a "name=ansible stare=absent" 卸载包
  file模块
  ansible webserver -m file -a "dest=/usr/bin/review.sh mode=755 owner=root group=wwww"  更改文件状态
  ansible webservers -m file -a "dest=/a/b/c/d mode=755 owner=www group=www state=new"   新建文件夹
  ansible webserver -m file -a "dest=/tmp/hosts state=absent" 删除文件
  ansible webserver -m file -a "src=/usr/bin/review.sh dest=/usr/bin/review mode=755 state=link"软链接
  service模块
  确定服务都是开启的
  #ansible all -m service -a "name=httpd state=started"
  重启服务
  #ansibel all -m service -a "name=httpd state=restarted"
  关闭服务
  #ansible all -m service -a "name=httpd state=stoped"
  user模块
  ansible all -m shell -a "echo 123456 |passwd --stdin root"  更换密码
  #ansible all -m user -a "name=test password=<abc>"  新建用户跟密码
  #ansible all -m user -a "name=test state=absent"
  4、paybook
  实例:批量创建维护账户
  # vi useradd.yml
  ---
  - hosts: all
  user: root
  sudo: no
  vars:
  #password: python -c 'import crypt; print crypt.crypt("devops1232", "fanghanyun")'
  user: fanghanyun
  tasks:
  - name: add user
  action: user name={{ user }} password=faJxjj/6hKXPs update_password=always shell=/bin/bash home=/home/{{ user }}
  tags:
  #vi useradd.yml
  - hosts: all
  remote_user: root
  tasks:
  - name: change password for root
  shell: echo '{{ item.password }}' |passwd --stdin root
  when: ansible_eth0.ipv4.address  == '{{ item.ip }}'
  with_items:
  - { ip: "ip1", password: 'password1' }
  - { ip: "ip2", password: 'password2' }
  - { ip: "ip3", password: 'password3' }

运维网声明 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-430882-1-1.html 上篇帖子: Ansible之roles介绍 下篇帖子: ansible 提示安装sshpass
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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