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

[经验分享] ansible操作

[复制链接]

尚未签到

发表于 2018-7-29 07:23:06 | 显示全部楼层 |阅读模式
  一、安装
DSC0000.jpg

  修改管理员密码
DSC0001.jpg

  二、批量推送公钥
  1.使用 ssh-keygen -t rsa生成密钥对
  ssh-keygen -t rsa
  2.推送单个公钥到远程机器
  格式: ssh-copy-id -i ~/.ssh/id_rsa.pub username@[ip,hostname]
  ssh-copy-id -i ~/.ssh/id_rsa.pub username@192.168.198.x
  3.添加ansible hosts
  编辑/etc/ansible/hosts,没有则创建些文件。
  格式:【主机名】 【主机地址】 【主机密码】  默认是root用户来进行的
  [all]
  1 ansible_ssh_user="root"  ansible_ssh_host=192.168.198.131 ansible_ssh_pass="123456"
  2 ansible_ssh_user="root"  ansible_ssh_host=192.168.198.134 ansible_ssh_pass="123456"
  3 ansible_ssh_user="root"  ansible_ssh_host=192.168.198.141 ansible_ssh_pass="123456"
  新版的ansible(2.4) hosts有更新, 用以下方式:
  [all]
  192.168.198.131 ansible_user=root ansible_ssh_pass="123456"
  192.168.198.141 ansible_user=root ansible_ssh_pass="123456"
  192.168.198.134 ansible_user=root ansible_ssh_pass="123456"
  4.批量推送公钥到远程机器
  机器多的情况下,使用ssh-copy-id方法有些费时,使用ansible-playbook推送ymal,这里使用到了authoried_keys模块,可以参考 http://docs.ansible.com/authorized_key_module.html
  [root@mha ansible]# ls
  ansible.cfg  hosts  push.ssh.ymal  roles
  [root@mha ansible]# cat push.ssh.ymal
  

  - hosts: all  user: root
  tasks:
  - name: ssh-copy
  authorized_key: user=root key="{{ lookup('file', '/root/.ssh/id_rsa.pub') }}"
  tags:
  - sshkey
  

DSC0002.jpg

  5.执行推送命令
  ansible-playbook push.ssh.ymal
  [root@mha ansible]# ansible-playbook push.ssh.ymal
  PLAY [all] **
  TASK [Gathering Facts] **
  ok: [192.168.198.134]
  ok: [192.168.198.141]
  ok: [192.168.198.131]
  TASK [ssh-copy] *****
  ok: [192.168.198.134]
  ok: [192.168.198.141]
  changed: [192.168.198.131]
  PLAY RECAP **
  192.168.198.131            : ok=2    changed=1    unreachable=0    failed=0
  192.168.198.134            : ok=2    changed=0    unreachable=0    failed=0
  192.168.198.141            : ok=2    changed=0    unreachable=0    failed=0
DSC0003.jpg

  新增用户和创建密码
  [root@nginx-proxy-01-keepalived ansible]# ansible nginx -m shell -a "useradd wsw && echo "123456"| passwd --stdin wsw"
  192.168.198.131 | SUCCESS | rc=0 >>
  Changing password for user wsw.
  passwd: all authentication tokens updated successfully.
  192.168.198.134 | SUCCESS | rc=0 >>
  Changing password for user wsw.
  passwd: all authentication tokens updated successfully.
  192.168.198.145 | SUCCESS | rc=0 >>
  Changing password for user wsw.
  passwd: all authentication tokens updated successfully.
  192.168.198.144 | SUCCESS | rc=0 >>
  Changing password for user wsw.
  passwd: all authentication tokens updated successfully.
  三、检查主机组或者是单一个主机
  [root@mha ansible-tower-setup-3.1.0]# ansible all -m shell -a "mysql -uroot -p123456 -e 'use test;show tables'"
  192.168.198.134 | SUCCESS | rc=0 >>
  Tables_in_test
  t3
  t4
  t44
  t5
  tt1
  192.168.198.131 | FAILED | rc=127 >>
  /bin/sh: mysql: command not found
  192.168.198.141 | SUCCESS | rc=0 >>
  Tables_in_test
  t3
  t4
  t44
  t5
  tt1
DSC0004.jpg

  四、ansible-playbook
  1、关于git pull
  [root@mha ansible-for-devops]# cat git.yml
  

---  
- hosts: 192.168.198.131
  gather_facts: no
  

  tasks:
  - name: mkdir code.
  shell: mkdir /root/600
  

  tasks:
  - name: git pull the code.
  git: repo=git@git.coding.net:wsw26/600.git  dest=/root/600/
  

DSC0005.jpg

  2、关于git pull紧接着checkout branch
  [root@mha ansible-for-devops]# cat git.yml
  

---  
- hosts: 192.168.198.131
  gather_facts: no
  

  tasks:
  - name: mkdir code.
  shell: mkdir /root/600
  

  tasks:
  - name: git pull the code.
  git: repo=git@git.coding.net:wsw26/600.git  dest=/root/600/
  

  tasks:
  - git:
  repo: git@git.coding.net:wsw26/600.git
  dest: /root/600/
  version: v1.9.306
  

DSC0006.jpg

  客户机能顺利把代码拉下来并切换分支了
DSC0007.jpg

  四、ansible-tower
DSC0008.jpg

DSC0009.jpg

  编译打开
DSC00010.jpg

运维网声明 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-542743-1-1.html 上篇帖子: ansible简单用法 下篇帖子: Ansible API 2.0的测试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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