ansible--playbook开篇(互信demo)

2022-06-26 10:05:03 浏览数 (1)

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

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

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

代码语言:javascript复制
yum install -y ansible

完成安装。

代码语言:javascript复制
vim /etc/ansible/hosts

加入下面测试节点内容:

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

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

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

代码语言:javascript复制
---

- 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这步我就不用了。那么我的执行命令是:

代码语言:javascript复制
ansible-playbook --skip-tags='close ssh check' sshKey.yml

skip-tags就是跳过标签!

其实主机互信就是将所有服务器指定用户生成的公钥keys的内容写入到对方的authorized_keys中就完成了。

那么我们再执行这个动作的时候要想好,第一步干啥,第二步干啥。然后安装你想好的顺序写playbook就行了。

当然波哥这个demo是最简单的了。我们在企业中肯定不会这么写的。什么都系都在一篇中那多难维护呀对吧!

更多内容等波哥做好了我们再一起学习吧!

0 人点赞