ansible

clone a specific branch from git through ansible playbook

时光怂恿深爱的人放手 提交于 2020-04-10 06:47:08
问题 I am using ansible to deploy my app. I am cloning the app from github using the following: - name: Deploy site files from Github repository sudo: yes git: repo=git@github.com:xyz/abc.git dest=/home/{{deploy_user}}/{{app_name}} key_file=/home/ubuntu/.ssh/id_rsa accept_hostkey=yes force=yes I want to clone a specific branch from the repository. I read the documentation of ansible but couldn't find any option to clone a specific branch. It has an option to clone a version but not branch. 回答1:

ansible自定义模块

别等时光非礼了梦想. 提交于 2020-04-08 00:49:48
想要编写自定义模块特别简单 然后就可以直接调用了: 因为你的模块文件不是存放在ansible默认模块的存放路径,所有你需要-M执行模块的路径, 然后-m指定模块名,以及-a 指定参数都是可以的 用任何语言都可以。 现在使用shell编写: 执行结果: 注意返回结果要以键值对的方式返回。 来源: https://www.cnblogs.com/yangmingxianshen/p/12657344.html

ansible组件——facts

丶灬走出姿态 提交于 2020-04-07 23:00:57
facts组件是Ansible用于采集被管理机器设备信息的一个功能。 我们可以通过setup模块查看机器的所有facts信息,同时可以使用filter来查看指定信息。 执行ansible 127.0.0.1 -m setup: 148.70.122.28 | SUCCESS => { "ansible_facts": { "ansible_all_ipv4_addresses": [ "172.17.0.1", "172.27.16.8" ], "ansible_all_ipv6_addresses": [], "ansible_apparmor": { "status": "disabled" }, "ansible_architecture": "x86_64", "ansible_bios_date": "01/01/2011", "ansible_bios_version": "Bochs", "ansible_cmdline": { "BOOT_IMAGE": "/boot/vmlinuz-3.10.0-514.26.2.el7.x86_64", "LANG": "C", "biosdevname": "0", "console": "tty0", "crashkernel": "auto", "net.ifnames": "0", "panic": "5", "ro":

如果知道自己追求什么,那么目标就容易了(第十六周)

时光总嘲笑我的痴心妄想 提交于 2020-04-07 14:06:11
一、 使用ansible的playbook实现自动化安装httpd 1、 安装并且配置ansible的配置文件; Tail -n 5 /etc/ansible/hosts 2、配置安装ssh免秘钥登录,并完成分发到其他机子; [root@mageedu ~]# ssh-keygen -P '' [root@mageedu ~]# ll .ssh/ [root@mageedu ~]# ssh-copy-id -i root@192.168.1.18 测试ssh免密登录 提示:可以看到ansible主机能够正常免密登录远端主机,接下我们在用ansible的ping模块去探测下被管控主机的存活; 3、配置ansible-playbook并且进行按安装httpd服务; 首选在node2上yum remove httpd 在node1上配置ansible的playbook:vim install_httpd.yml ansible-playbook install_httpd.yml 在node2上查看安装 可以打开网页测试浏览器是直接可以访问到192.168.1.18的测试页面,说明httpd在192.168.1.18上安装成功; 二、建立httpd服务器,要求提供两个基于名称的虚拟主机 1、www.X.com,页面文件目录为/web/vhosts/x;错误日志为 /var/log

﹥>﹥吖頭↗ 提交于 2020-04-07 13:44:18
1.外面的电脑可以访问本机的虚拟机(共享虚拟机服务) iptables -t nat -A PREROUTING -i enp2s0 -d 172.40.5.1 -p tcp --dport 2222 -j DNAT --to 192.168.4.10:22(路由前iptables作目的地址转发) 2.虚拟机连接外网 1)关闭本机防火墙服务 systemctl stop firewalld.service 2)开启本机路由转发功能 sysctl -w net.ipv4.ip_forward=1 3)iptables作源地址伪装 iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -o p8p1 -j MASQUERADE 4)在虚拟机里添加网关地址:route add default gw 192.168.4.254 3.brctl show 查看网桥 brctl addbr lo1 创建网桥 brctl delbr lo1 删除网桥 brctl addif lo1 连接网桥 brctl delif lo1 断开连接 一 。ansible介绍 1.自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。 二。ansible特点

手把手使用Kubespray 2.8.3部署生产可用的Kubernetes集群(1.12.5)

三世轮回 提交于 2020-04-07 10:28:08
Kubernetes的安装部署是难中之难,每个版本安装方式都略有区别。笔者一直想找一种 支持多平台 、 相对简单 、 适用于生产环境 的部署方案。经过一段时间的调研,有如下几种解决方案进入笔者视野: 部署方案 优点 缺点 Kubeadm 官方出品 部署较麻烦、不够透明 Kubespray 官方出品、部署较简单、懂Ansible就能上手 不够透明 RKE 部署较简单、需要花一些时间了解RKE的cluster.yml配置文件 不够透明 手动部署 第三方操作文档 完全透明、可配置、便于理解K8s各组件之间的关系 部署非常麻烦,容易出错 其他诸如Kops之类的方案,由于无法跨平台,或者其他因素,被我pass了。 最终,笔者决定使用Kubespray部署Kubernetes集群。 也希望大家能够一起讨论,总结出更加好的部署方案 。 废话不多说,以下是操作步骤。 注:撰写本文时,笔者临时租赁了几台海外阿里云机器,所以不存在无法连接gcr.io的问题。如果您的服务器在国内,请: 考虑科学上网 修改Kubespray中的gcr地址,改为其他仓库地址,例如阿里云镜像地址(修改 roles/download/defaults/main.yml 即可) 先弄个海外环境,安装完Kubernetes后,将镜像 docker save 下来,再到国内的服务器上 docker load 。 主机规划 IP 作用

KubeSpray部署k8s集群

久未见 提交于 2020-04-07 08:59:33
KubeSpray 部署 k8s 集群 Kubespray 是 Kubernetes incubator 中的项目,目标是提供 Production Ready Kubernetes 部署方案,该项目基础是通过 Ansible Playbook 来定义系统与 Kubernetes 集群部署的任务,具有以下几个特点: l 可以部署在 AWS, GCE, Azure, OpenStack 以及裸机上 . l 部署 High Available Kubernetes 集群 . l 可组合性 (Composable) ,可自行选择 Network Plugin (flannel, calico, canal, weave) 来部署 . l 支持多种 Linux distributions(CoreOS, Debian Jessie, Ubuntu 16.04, CentOS/RHEL7). GitHub 地址: https://github.com/kubernetes-sigs/kubespray 一、 环境准备 1 )所以的主机都需要关闭 selinux ,执行的命令如下: setenforce 0 sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux 2

脚本中实现Ansible的playbook的方法

柔情痞子 提交于 2020-04-07 01:58:25
##脚本说明 project -- 操作的项目输入 playbook -- 远程服务器执行的规则定义 脚本 import ansible from ansible.playbook import PlayBook from ansible.inventory import Inventory from ansible import callbacks from ansible import utils utils.VERBOSITY = 0 playbook_cb = callbacks.PlaybookCallbacks(verbose=utils.VERBOSITY) stats = callbacks.AggregateStats() runner_cb = callbacks.PlaybookRunnerCallbacks(stats, verbose=utils.VERBOSITY) project = "test" playbook = "/etc/ansible/test.yml" # 通过ansible的get_hosts方法获取到本次操作的服务器列表 def get_invent(project): invent = [] inv = ansible.inventory.Inventory() invent_array = inv.get_hosts

Ansible Playbook 变量传递

早过忘川 提交于 2020-04-06 18:56:26
1. 可以在命令行传递变量 ansible-playbook -e "host=dev user=root" vars.yaml --- - name: var test hosts: " {{ host }} " tasks: - name: var test debug: msg: "Hello {{ user }} " 2. 可以将变量写在inventory ansible-playbook -e "host=dev" vars.yaml [all:vars] user = root [dev] servera.lab.example.com --- - name: var test hosts: " {{ host }} " tasks: - name: var test debug: msg: " Hello {{ user }} " 来源: oschina 链接: https://my.oschina.net/u/4346166/blog/3219404