ansible

Ansible 之 外部变量文件调用

此生再无相见时 提交于 2021-01-21 09:47:16
一、外部文件变量作用 变量文件可以实现变量的集中管理,使得变量的管理更加方便、高效,在大型集群架构部署中,可灵活定义各机器的关系,便于提升部署兼容性。 二、调用外部变量playbook文件 --- - hosts: test vars_files: - vars.yml #外部变量文件与ping.yaml文件相同目录 remote_user: "{{user}}" #调用外部变量 become: yes tasks: - name: "判断该主机的存活状态" ping: 三、vars.yml变量文件 [root@Ansible playbook]# cat vars.yml user: cedar 四、验证结果 [root@Ansible playbook]# ls ping.yaml test.yaml vars.yml yum_zookeeper.yaml [root@Ansible playbook]# ansible-playbook ping.yaml PLAY [test] *****************************************************************************************************************************************************

How can I know what version of Jinja2 my ansible is using?

馋奶兔 提交于 2021-01-21 08:44:05
问题 I tried to use pip list and pip freeze without success. It might be something obvious but I am not able to find it so far. 回答1: Drop this file as ./action_plugins/jin_ver.py : from ansible.plugins.action import ActionBase import jinja2 class ActionModule(ActionBase): def run(self, tmp=None, task_vars=None): result = super(ActionModule, self).run(tmp, task_vars) return dict(msg=jinja2.__version__) And execute this playbook ./test_jin.yaml : --- - hosts: localhost gather_facts: no tasks: -

Ansible - set a fact from dynamic variables

空扰寡人 提交于 2021-01-20 13:27:06
问题 I call specific variables file from a fact - name: Load vars - {{ ansible_distribution }} {{ ansible_distribution_major_version }} package list include_vars: file: "{{ ansible_distribution | lower }}-pkglist.yml" # if vars file is not found we continue ignore_errors: yes Variables in that file could have different name, depending of the distribution #package for all debians server prefix_debian: - pkgname - pkgname ... #package for all debian 10 server prefix_10 : - specific major version

Ansible 之 通过yum模块安装软件

拜拜、爱过 提交于 2021-01-20 10:23:23
一、安装Nginx #可通过ansible-doc yum 查看对应的帮助文档 [root@Ansible ~]# ansible test -m command -a "wget -O /etc/yum.repos.d/epel.repo" #下载epel源 [root@Ansible ~]# ansible test -m command -a "yum clean all" -u cedar -b [root@Ansible ~]# ansible test -m command -a "yum makecache" -u cedar -b [root@Ansible ~]# ansible test -m command -a "yum info nginx" -u cedar -b [root@Ansible ~]# ansible test -m yum -a "name=nginx state=present" -u cedar -b 10.3.153.8 | CHANGED => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": true, "changes": { "installed": [ "nginx" ] }, [root

centos7下自动打包OpenSSH8.4的RPM并集成OpenSSL-1.1.1i

与世无争的帅哥 提交于 2021-01-20 10:22:34
升级流程 openssl-1.1.1i RPM的编译打包参考之前的文章 centos 7 OpenSSL1.1.1i rpm自动打包shell 首先 rpmbuild 打出 OpenSSH 8.4 的 RPM 包,rpm -Uvh 升级,修改 /etc/pam.d/sshd 文件,重启 sshd 服务,升级完成。 #!/bin/bash set -ex yum install rpm-build zlib-devel openssl-devel gcc perl-devel pam-devel unzip -y mkdir -p /root/rpmbuild/{SOURCES,SPECS} cd /root/rpmbuild/SOURCES if [[ ! -f "openssh-8.4p1.tar.gz" ]];then wget -c http://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.4p1.tar.gz fi if [[ ! -f "x11-ssh-askpass-1.2.4.1.tar.gz" ]];then wget https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz

警惕文化空谈的陷阱,落地DevOps工具才是关键

强颜欢笑 提交于 2021-01-19 03:40:22
转载本文需注明出处:微信公众号EAWorld,违者必究。 恍惚间,DevOps已经被讨论十年了 “如果系统是集中式的、环境是同质化的,从开发环境向生产环境推送程序变化的过程非常简单,不需要太多的自动化;但是今天的应用需要7×24小时运行、采用分布式架构、部署到多种环境,变更过程变得愈加复杂、难以自动化……不论在大型组织还是小型组织,施行DevOps在技术上都非常具有挑战性。” 上面这段文字如果放在今天,那只是段关于DevOps的、稀松平常的讨论,但是如果它写于十年前,各位读者会不会感到有一些惊讶? 这段文字写于2007年8月的下旬,很快就距今整十年了,这是我所知道的业内最早的关于DevOps的系统性讨论,我在整理收藏夹的时候偶然发现了它,这让我突然意识到: DevOps已经十年了。 可是,为什么雷声大雨点小? 博客网站dev2ops.org(据说是devops.org被抢注了,所以他们只能加个2,而devops.org至今仍是个空域名)的文章“What makes dev2ops so hard anyway?” 文中还罗列了阻碍DevOps施行的几个因素: 变更结果的可靠性和可预见性 不同类型的变更(数据、代码、配置、内容、平台等)对系统造成的不同影响未被充分评估 对分布式系统各部分的变更非常难以协调 开发与运维的组织边界难以界定 这几个因素在今天依然阻碍着DevOps的施行

ansible tags模块

。_饼干妹妹 提交于 2021-01-18 10:28:38
作用 你写了一个很长的playbook,其中有很多的任务,这并没有什么问题,不过在实际使用这个剧本时,你可能只是想要执行其中的一部分任务而已,或者,你只想要执行其中一类任务而已,而并非想要执行整个剧本中的全部任务,这个时候我们该怎么办呢?我们可以借助tags实现这个需求。 案例 [ root@master ~ ] # vi hosts . yaml - hosts : server1 remote_user : root tasks : - name : copy hosts01 copy : src = / etc / hosts01 dest = / opt / hosts tags : # 第一个任务打上标签 aaa - aaa - name : touch hosts02 file : path = / opt / hosts state = touch [ root@master ~ ] # ansible - playbook hosts . yaml -- tags = "aaa" # 执行任务调用 aaa 标签,只会执行第一个任务,后面第二个任务不会执行 验证 [ root@node1 ~ ] # cd / opt / [ root@node1 opt ] # ll 总用量 2 - rw - r -- r -- . 1 root root 158 1 月 10 19

每日学习-ansible replace模块

一曲冷凌霜 提交于 2021-01-18 10:27:25
replace模块用于在文件中根据指定的正则表达式替换匹配的内容 replace模块常用参数 • path:必须参数,指定要修改的文件,2.3版本之前,这个参数叫dest、destfile、name;现在这三个名称是path参数的别名 • regexp:必须参数,指定一个正则表达式,可以是python正则 • replace:替换regexp参数匹配到的字符串, • owner:结果文件或目录的所属用户名,相当于chown命令修改 • group:结果文件或目录的所属组名,相当于chown命令修改 • mode:结果文件或目录的权限,与chmod命令不一致的是,replace模块的mode参数需要添加前导零,以便ansible的YAML解析器知道它是八进制;1.8版本后可以设置为符号模式(u+rwx或u=rw),2.6版本后可以是特殊字符串(preserve),当设置为'preserve'时,文件将被赋予与源文件相同的权限。 • others:可以指定file模块的所有参数 • encoding:用于读取和写入文件的字符编码 • before:如果指定,则仅替换/删除此匹配之前的内容,可以和after参数结合使用 • after:如果指定,则仅替换/删除此匹配之后的内容,可以和before参数结合使用 • attributes:结果文件或目录的特殊属性,相当chattr,默认使用

每日学习-ansible yum模块

天大地大妈咪最大 提交于 2021-01-17 16:53:52
yum模块用于在python2环境下管理基于RPM的Linux发行版中的rpm包,在python3环境中使用dnf模块。 yum模块常用参数 name:必须参数,指定要操作的包名,同时可以指定版本,,如果指定了以前的版本,需要打开allow_downgrade参数;如果state参数为latest,name参数可以指定为'*',这意味着yum -y update;如果指定了本地的rpm文件或是一个url连接,需要state参数为present。 allow_downgrade:是否允许rpm包版本降级(True或False) state:安装 (present or installed, latest) 或删除 (absent or removed) 包, download_only:仅下载,不安装 download_dir:与download_only参数一起使用,指定下载包的目录 disable_gpg_check:当state参数值为present或latest时,禁用gpg检查 list:列出包的安装,更新,可用以及仓库信息,相当于yum list yum模块示例 1、安装php和mariadb - name: install php and mariadb yum: name= "{{ item }}" with_items: - php - mariadb 2

在树莓派集群中部署 Ceph

别等时光非礼了梦想. 提交于 2021-01-17 14:55:08
使用 ceph-ansible 安装 Ceph 存储,并将其部署在树莓派集群中。 Ceph 是一个开源软件存储平台,它在统一的存储集群中提供对象、块和文件系统存储。我第一次使用 Ceph 是在 OpenStack 中集成它 的时候。一开始,我很困惑,既然存储设备广泛存在,为什么要使用 Ceph。但在使用了三年多之后,这个平台的稳定性和完整性一再证明了它的价值。 本文将告诉你如何使用 ceph-ansible (Ceph 官方支持的 Ansible playbook)安装 Ceph,并将其部署在树莓派集群中。 材料: 树莓派 4B 4GB 型号四台。 四张 32GB 的 microSD 卡(用于启动操作系统) 四个树莓派外壳,带风扇和散热片(非常重要) 四个树莓派充电器 6 个 32GB U 盘(用于 Ceph OSD 节点) 架构: 关于配置: 前端和后端网络都在同一个子网中 Ceph Monitor 软件使用 4GB 内存的树莓派 4B。 Ceph OSD 节点使用相同的树莓派型号,但有两个 U 盘用于 OSD 磁盘 使用 ceph-ansible 部署 Ceph 使用 Ceph 的 Ansible 仓库可以让部署变得顺畅简单 1、复制 ssh 密钥到所有服务器 我在所有的服务器上都有一个名为 cephadmin 的共同用户(在此背景下,每个树莓派都是一台服务器)。