ansible--playbook开篇(互信demo)

简介: ansible--playbook开篇(互信demo)

640.gif

OK!咱们搞自动化的除了学会各种语言及脚本编程外,还有几个重要的工具需要学习,那么其中最有名的当属ansible了。


波哥反思了一下,自诩干货最多的公众号却独独缺少了ansible这个一块重要内容,这是不可忍受的。而ansible也深入到了各个企业,成为了大部分企业的主干管理工具,现在企业招聘系统方面或者后端的工程师ansible都是必须要会的一个东西!那么往后的一段时间,我会详尽的给大家出一些ansible的脚本,以及ansible到底咋回事?我们该怎么用?最后波哥也会出一篇ansible部署一套openstack的playbook。


playbook一些理论性的知识波哥就不讲那么多了。波哥就大概给各位说说一些基本步骤:


yum install -y ansible


完成安装。


vim /etc/ansible/hosts


加入下面测试节点内容:

640.png


能看明白吧,一个账号,一个密码。


ansible我们主要深入研究playbook,其他的ansible玩法你们自己研究查。更理论的波哥就不打字了,有时间我会录一期视频内容跟大家聊聊这个东西。


咱们拿playbook写一篇多主机互信。下面就是,还是非常快的!


---
- hosts: ssh
  gather_facts: false
  remote_user: root
  ignore_errors: yes
  vars:
    - AnsibleDir: /etc/ansible 
  tasks:
    - name: enforce env   
      shell: source /etc/profile
    - name: close ssh check 
      shell: sed -i "s/^.*StrictHostKeyChecking.*$/   StrictHostKeyChecking no/g" /etc/ssh/ssh_config
      tags: ['close ssh check']
    - name: delete rsa
file: path=/root/.ssh state=absent
    - name: local delete rsa
file: path=/root/.ssh state=absent
connection: local
    - name: generating public/private rsa key pair 
      shell: ssh-keygen -t rsa -b 2048 -N '' -f /root/.ssh/id_rsa
    - name: view id_rsa.pub 
      shell: cat /root/.ssh/id_rsa.pub
register: sshinfo
    - set_fact: sshpub={{sshinfo.stdout}}
    - name: mkdir key path
file: path={{AnsibleDir}}/roles/templates state=directory
connection: local
    - name: add ssh record
      shell: echo {{sshpub}} >> {{AnsibleDir}}/roles/templates/authorized_keys.j2 
connection: local
    - name: copy authorized_keys.j2 to all
template: src={{AnsibleDir}}/roles/templates/authorized_keys.j2 dest=/root/.ssh/authorized_keys mode=0600
      tags: ['install ssh']

因为代码比较少,我这个就直接贴在这里了。我们再执行的时候可以摘抄自己需要的步骤执行,例如波哥的所有环境都已经自己做了初始化,所有ssh修改config这步我就不用了。那么我的执行命令是:


ansible-playbook --skip-tags='close ssh check' sshKey.yml


skip-tags就是跳过标签!其实主机互信就是将所有服务器指定用户生成的公钥keys的内容写入到对方的authorized_keys中就完成了。那么我们再执行这个动作的时候要想好,第一步干啥,第二步干啥。然后安装你想好的顺序写playbook就行了。当然波哥这个demo是最简单的了。我们在企业中肯定不会这么写的。什么都系都在一篇中那多难维护呀对吧!更多内容等波哥做好了我们再一起学习吧!

相关文章
|
11月前
|
Shell 网络安全 开发工具
|
存储 Kubernetes 调度
Ansible最佳实践之 AWX 管理项目的一些笔记
写在前面 分享一些 AWX 创建管理项目的笔记 博文内容涉及: 容器化 AWX 手工创建项目Demo 通过 SCM 创建项目 Demo 项目角色,更新策略介绍,SCM 凭据的创建 食用方式: 需要了解 Ansible 理解不足小伙伴帮忙指正
494 0
Ansible最佳实践之 AWX 管理项目的一些笔记
|
XML NoSQL 关系型数据库
实现 Ansible 企业级用法 playbook| 学习笔记
快速学习实现 Ansible 企业级用法 playbook
186 0
实现 Ansible 企业级用法 playbook| 学习笔记
|
缓存 运维 负载均衡
Ansible-playbook 的编写 | 学习笔记
快速学习Ansible-playbook 的编写
Ansible-playbook 的编写 | 学习笔记
|
MySQL 关系型数据库 Shell
Ansible第二篇:ansible-playbook
一、Playbook语法 Ansible-playbook采用YAML语法编写。 示例:[root@LOCALHOST ~]# cat yaml/httpd.
1523 0
|
监控 关系型数据库 Linux
Ansible-playbook roles安装zabbix客户端实例(学习笔记三十)
目前我的playbook只允许centos或redhat 6系列系统来安装zabbix客户端,并且客户端的版本是2.0.6. 下面是playbook的结构 14:29:30 # pwd /etc/ansible/roles root@ip-10-10-...
1241 0
|
Shell 应用服务中间件 nginx
|
网络安全 数据安全/隐私保护
|
机器学习/深度学习 Shell 开发工具