Playbook 介绍

Playbook是 一个不同于使用Ansible命令行执行方式的模式,其功能更强大灵活。简单来说,playbook是一个非常简单的配置管理和多主机部署系统,不同于任何已经存在的模式,可作为一个适合部署复杂应用程序的基础。Playbook可以定制配置,可以按照指定的操作步骤有序执行,支持同步和异步方式。值得注意的是playbook是通过YAML格式来进行描述定义的。


1、目前两台服务器的主机名:

192.168.20.40

[root@docker02 ~]# hostname

docker02

192.168.20.39

[root@slavedb tmp]# hostname

slavedb


2、Ansible配置

root@docker02 ~]# vim /etc/ansible/hosts

 [web]


k8s-master ansible_ssh_host=192.168.20.40

k8s-node3  ansible_ssh_host=192.168.20.39

3、Playbook配置

[root@docker02 ~]# more host.yml 

---


- hosts: web

  tasks:

  - name: hostname 

    shell: hostnamectl set-hostname {{ inventory_hostname }}

    when: ansible_distribution_major_version == "7"


4、执行playbook

[root@docker02 ~]# ansible-playbook host.yml

[root@docker02 ~]# hostname

k8s-master

[root@slavedb tmp]# hostname

k8s-node3

5、主机名写入/etc/hosts

服务器:192.168.20.40

[root@docker02 ~]# cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1    localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.20.40 docker02

192.168.20.39 slavedb

服务器:192.168.20.39

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1    localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.20.40 docker02

192.168.20.39 slavedb

6、执行playbook

[root@docker02 ~]# more host.yml 

---


- hosts: web

  tasks:

  - name: hostname 

    shell: hostnamectl set-hostname {{ inventory_hostname }}

    when: ansible_distribution_major_version == "7"

  - name: modify etc hosts

    shell: echo "{{ ansible_ens33['ipv4']['address'] }} {{ inventory_hostname }}" >>/etc/hosts

    register: result

  - debug: var=result

[root@docker02 ~]# ansible-playbook host.yml

7、检查hosts

[root@docker02 ~]# cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.20.40 docker02

192.168.20.39 slavedb

192.168.20.40 k8s-master

[root@slavedb tmp]# cat /etc/hosts |egrep -v "^$|^#" /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.20.40 docker02

192.168.20.39 slavedb

192.168.20.39 k8s-node3

相关阅读:

1、编写Playbook部署Etcd集群

2、Playbook批量部署Docker

3、Playbook分发Nginx配置文件



©著作权归作者所有:来自51CTO博客作者mob604756e834f7的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Redis搭建和主从复制
  2. 使用kubeadm部署kubernetes集群
  3. 04- Kuboard v2 部署RabbitMQ服务
  4. 11:VMware Horizon View 8.0-部署配置UAG网关
  5. DevOps 中高效测试基础架构的最佳实践
  6. 语音也能做持续集成和持续部署?看 Jenkins + Alexa 如何实现
  7. 容器云平台No.6~企业级分布式存储Ceph~v14.2.10
  8. 容器云平台No.4~kubernetes 服务暴露之Ingress
  9. 闲聊Kubernetes Pod垂直自动伸缩(VPA)

随机推荐

  1. android中实现swipe的手势功能及页面拖动
  2. [置顶] 关于代码家(干货集中营)共享知识
  3. android 资源列表-史上最有价值的android
  4. android spinner默认样式不支持换行和修
  5. Android消息机制源码分析
  6. 2020新鲜出炉的Android大厂面试题锦集(BA
  7. Android中的几种网络请求方式详解 .
  8. android 回车键事件
  9. 我所理解的Android模块化(三)——模块可插
  10. Android中的AndroidManifest.xml文件