OK!咱们搞自动化的除了学会各种语言及脚本编程外,还有几个重要的工具需要学习,那么其中最有名的当属ansible了。
波哥反思了一下,自诩干货最多的公众号却独独缺少了ansible这个一块重要内容,这是不可忍受的。而ansible也深入到了各个企业,成为了大部分企业的主干管理工具,现在企业招聘系统方面或者后端的工程师ansible都是必须要会的一个东西!那么往后的一段时间,我会详尽的给大家出一些ansible的脚本,以及ansible到底咋回事?我们该怎么用?最后波哥也会出一篇ansible部署一套openstack的playbook。
playbook一些理论性的知识波哥就不讲那么多了。波哥就大概给各位说说一些基本步骤:
yum install -y ansible
完成安装。
vim /etc/ansible/hosts
加入下面测试节点内容:
能看明白吧,一个账号,一个密码。
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是最简单的了。我们在企业中肯定不会这么写的。什么都系都在一篇中那多难维护呀对吧!更多内容等波哥做好了我们再一起学习吧!