ansible

ansible wget then exec scripts => get_url equivalent

房东的猫 提交于 2019-12-28 13:46:44
问题 I always wonder what is the good way to replace the following shell tasks using the "ansible way" (with get_url , etc.): - name: Install oh-my-zsh shell: wget -qO - https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | bash - or - name: Install nodesource repo shell: curl -sL https://deb.nodesource.com/setup_5.x | bash - 回答1: This worked for me: - name: Download zsh installer get_url: url=https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh dest=/tmp/zsh

CICD流程

橙三吉。 提交于 2019-12-28 13:16:51
CICD整体介绍 一、产品上线流程 1、运营与用户进行交流与沟通,确认需求 2、运营将需求转交给产品经理,产品经理 分析需求 , 确认需求 ,注意: 确认需求之后要进行内部会议,确认产品的可行性,并且将需求转换为具体的项目方向(用户提出的需求都是一个比较大的方向,需求提出人员要和用户进行沟通,确认需求是否满足期望) 3、需求可行性通过之后,产品经理要和设计师共同协作完成PRD(产品需求文档)和原型 4、UI根据需求文档和原型进行UI设计 5、需求和原型设计出来之后,产品经理将需求转交给相关的业务开发人员,业务开发人员首先根据项目需求进行项目可行性分析,然后并根据具体项目给出开发周期,最后将项目具体分工到开发人员 6、开发人员完成项目(保证项目可run,并且对项目进行了code review之后提交)之后,移交测试人员进行测试 7、测试人员写测试用例,编写测试文档,最后编写测试报告,通过发邮箱的方式告知开发人员,测试有BUG则告知开发人员进行修改 8、测试通过之后,移交产品经理进行验收,不通过则返回修改,通过则告知运维人员准备上线, 9、运维人员接到通知之后,进行上线准备,首先在测试环境测试完毕之后,移交预生产环境进行测试,确保万无一失之后部署项目上线生产环境,项目上生产环境之前发邮箱通知领导,项目上线完毕之后也要通知相关领导 二、项目上线流程 开发环境,测试环境,预生产环境

搭建ansible工具

有些话、适合烂在心里 提交于 2019-12-28 12:14:30
1.安装epel 2.安装python 3.安装ansible 4.查看ansible的版本 5.生成空的公钥 6.默认生成在root家目录.ssh下 7.私钥设置,下次登陆不需要密码 8.配置文件加组名IP,保存退出 9.ping自己的组名 10.通过以下命令对两台机器进行操作 完成 来源: CSDN 作者: lok66666 链接: https://blog.csdn.net/lok66666/article/details/103741078

ansible的常用模块

巧了我就是萌 提交于 2019-12-27 07:48:20
单独一个: ansible ip地址 -m 模块 -a ‘命令’ 用-m和-k测试: ansible -m ping -k ip地址 用list测试IP地址 : ansible --list ip地址 一般格式: ansible 主机组 -m 模块 -a ‘命令’ ping ping模块用来检查目标主机是否在线 例子: ansible webserver -m ping yum yum模块用来在Centos系统上使用yum命令安装软件包 选项: name: 指定安装包的名字 state:latest 安装最新版 present 默认安装 installed 安装 absent 卸载 removed 卸载 例子: ansible webservers -m yum -a 'name=httpd state=latest' command command模块用来执行系统命令,但是不支持shell下的特殊符号 如:| &&等 例子: ansible webservers -m command -a 'echo 小明' shell shell模块和command模块使用方法基本一致,但是他可以支持shell的特殊符号,如: | && 等 例子: ansible webservers -m shell -a 'cd /opt/ && mkdir xiaoming' service

ansible 模板

会有一股神秘感。 提交于 2019-12-27 07:15:57
ansible 模板使用语法: 1. 使服务器执行一个shell 命令 - name: execute a shell command (ansible 任务名称,可写可不写,写了直观,同时可以直接根据任务名称定位到 任务行) shell : hostname (表示 在服务器上执行 hostname 这条命令) 或 - shell: hostname 2. copy 复制文件,从服务器本地到本地 或 从ansible server 服务器 到 被操作的服务器本地。 - name: Get EPEL 任务名称 copy: src: epel-release-6-8.noarch.rpm (cp 的源文件的位置,不加绝对路径,代表在ansible 服务器,位置位于 执行的yml 文件所在的roles 下的 file 目录下 ) dest: /tmp/epel-release-6-8.noarch.rpm when: ansible_distribution_major_version == '6' (判断条件,但服务器版本是6 才执行 cp 这条任务,即名称是 Get EPEL 这个的这条任务 ) 3.yum ,用yum 进行包操作,如 install,update ,remove - name: disable selinux () yum: name: libselinux

ansible 自动ssh

爷,独闯天下 提交于 2019-12-27 02:01:23
http://szgb2016.blog.51cto.com/340201/1669731 安装 yum -y install ansible expect 生成key,ssh-keygen -t rsa -f ~/.ssh/id_rsa 两种办法 ssh+expect 出自oldbody cat /etc/ansible/hosts [web] web1 ansible_ssh_host=192.168.1.21 web2 ansible_ssh_host=192.168.1.22 提供修改的exp.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 . /etc/init .d /functions ip=$1 function KNOWN_HOST_REBUILD() { [ ! -e ~/. ssh /known_hosts ] && mkdir -p ~/. ssh / && touch ~/. ssh /known_hosts local i=$1 sed -i "/^${i} /d" ~/. ssh /known_hosts expect -c " spawn /usr/bin/ssh root@${i} echo ok; expect \"* yes /no )?\";

ansible 批量推送公钥

心不动则不痛 提交于 2019-12-27 02:00:53
这里我们使用ansible的playbook 的功能来推送秘钥 使用方法参见:http://blog.csdn.net/magedu_linux/article/details/48529645 这里我们首先配置好hosts,比如说 root@bigbao-VirtualBox:/etc/ansible/yml# cat /etc/ansible/hosts [sky_2] #sky1 ansible_ssh_host=10.10.20.2 ansible_ssh_port=102 ansible_ssh_user=root #sky2 ansible_ssh_host=10.10.20.2 ansible_ssh_port=103 ansible_ssh_user=root #sky3 ansible_ssh_host=10.10.20.2 ansible_ssh_port=104 ansible_ssh_user=root sky1 ansible_ssh_host=10.10.20.2 ansible_ssh_port=102 ansible_ssh_user=root ansible_ssh_pass="Abcd1234" sky2 ansible_ssh_host=10.10.20.2 ansible_ssh_port=103 ansible_ssh_user=root

使用ansible远程管理集群

坚强是说给别人听的谎言 提交于 2019-12-27 01:59:07
使用ansible远程执行命令 1.ansible简介 ansible的官方定义:“Ansible is Simple IT Automation”——简单的自动化IT工具。这个工具的目标: 自动化部署APP 自动化管理配置项 自动化的持续交付 自动化的(AWS)云服务管理。 其本质上就是在远程在多台服务器执行一系列命令和文件同步,和以前的介绍的 使用并行ssh提高工作效率 功能类似,他们都是使用ssh协议进行远程操作,但ansible比pssh功能更强大,比如支持主机列表分组、支持playbook模板文件等。本文仅仅介绍ansible的Ad-Hoc用法,即默认的command模块,直接在shell执行命令。 2.安装 ubuntu14.04直接使用 apt-get 安装: sudo apt-get install -y ansible 也可以使用pip命令安装: sudo pip install ansible 为了支持输入远程主机用户密码,还需要安装 sshpass 工具: sudo apt-get install -y sshpass 安装完成后创建~/.hosts文件,内容如下: [local] ceph-0 [mon] ceph-1 [osd] ceph-2 ceph-3 以上配置文件定义了三个主机组,分别为 local 、 mon 、 osd , ceph-x 是主机名

Ansible11:使用lookup生成变量

不打扰是莪最后的温柔 提交于 2019-12-27 01:53:06
目录 简单说明 1. file 2. pipe 3. env 4. template 5. csvfile 6. redis_kv 7. etcd 8. password 9. dnstxt 简单说明 在通常情况下,所有的配置信息都会被作为ansible的变量保存了,而且可以保存在ansible允许定义变量的各种地方,诸如vars区段, vars_files 加载的文件中,以及host_vars和group_vars目录中。 但在有些时候,我们希望从诸如文本文件或者.csv文件中收集数据作为ansible的变量,或者直接获取某些命令的输出作为ansible的变量,甚至从redis或者etcd这样的键值存储中取得相应的值作为ansible的变量。这个时候,我们就需要通过ansible的lookup插件来从这些数据源中读取配置数据,传递给ansbile变量,并在playbook或者模板中使用这些数据。 ansible支持一套从不同数据源获取数据的lookup,包括file, password, pipe, env, template, csvfile, dnstxt, redis_kv, etcd等 1. file 使用file lookup可以从文本文件中获取数据,并在这些数据传递给ansible变量,在task或者jinja2模板中进行引用

ansible学习

假如想象 提交于 2019-12-27 01:49:58
ansible 与salt对比 相同 都是为了同时在多台机器上执行相同的命令 都是python开发 不同 agent(saltstack需要安装、ansible不需要) 配置(salt配置麻烦,ansible基本不用配置) 学习路线(salt比较陡峭,ansible比较平缓) 第三方工具(salt比较少) 开源社区的对接(salt比较少) 现有用户(salt还是ansible少一些) 二次开发扩展的能力(ansible比较差,尤其是2.0以后) 大规模并发(200以内一样,200以上salt会好一些,当然我们也可以对ansible做一些配置使其在200以上追上salt) Windows的支持(salt会好很多) 安装 yum install -y ansible 查看ansible生成的命令,用到的命令 ansible ansible-doc ansible-galaxy(下载第三方插件) ansible-playbook 查看ansible 安装生成的 rpm -ql ansible |more /etc/ansible /etc/ansible/ansible.cfg #配置文件 /etc/ansible/hosts #主要文件 hosts文件详解 cat /etc/ansible/hosts # This is the default ansible 'hosts' file