ansible

Ansible and Playbook. How to convert shell commands into yaml syntax?

蓝咒 提交于 2020-02-03 06:43:24
问题 I'm a newbie in Ansible and I don't understand how all people easily write shell commands in the Ansible/YAML syntax. May be I've missed a page from the documentation where it is explained well. For example: What do I need to write in my playbook.yml if I want to perform these commands in my remote machines: sudo apt-get install software-properties-common sudo apt-key adv –recv-keys –keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db sudo add-apt-repository 'deb http://mariadb.biz.net

TIDB简介

♀尐吖头ヾ 提交于 2020-02-03 04:18:34
摘自 https://pingcap.com/docs-cn/ TiDB 是 PingCAP 公司设计的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库,结合了传统的 RDBMS 和 NoSQL 的最佳特性。TiDB 兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用性。 TiDB 的目标是为 OLTP (Online Transactional Processing) 和 OLAP (Online Analytical Processing) 场景提供一站式的解决方案。 TiDB 具备如下特性: 高度兼容 MySQL 大多数情况下 ,无需修改代码即可从 MySQL 轻松迁移至 TiDB,分库分表后的 MySQL 集群亦可通过 TiDB 工具进行实时迁移。 水平弹性扩展 通过简单地增加新节点即可实现 TiDB 的水平扩展,按需扩展吞吐或存储,轻松应对高并发、海量数据场景。 分布式事务 TiDB 100% 支持标准的 ACID 事务。 真正金融级高可用 相比于传统主从 (M-S) 复制方案,基于 Raft 的多数派选举协议可以提供金融级的 100% 数据强一致性保证,且在不丢失大多数副本的前提下,可以实现故障的自动恢复 (auto-failover),无需人工介入。 一站式 HTAP 解决方案

Ansible安装与模块管理

时光毁灭记忆、已成空白 提交于 2020-02-03 02:07:19
Ansible简介 Ansible可以同时管理Redhat系的Linux,Debian系的Linux,以及Windows主机。管理节点只在执行脚本时与远程主机连接,没有特别的同步机制,所以断电等异常一般不会影响ansbile。 Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,Ansible只是提供一种框架。主要包括: 1、连接插件connection plugins:负责和被监控端实现通信; 2、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机; 3、各种模块核心模块、command模块、自定义模块; 4、借助于插件完成记录日志邮件等功能; 5、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。 Ansible的架构:连接其他主机默认使用ssh协议 Ansible环境安装部署 服务器角色 IP地址 Ansible管理端 192.168.142.120 Ansible被管理端01 192.168.142.121 Ansible被管理端02 192.168.142.122

Ansible模块——package

亡梦爱人 提交于 2020-02-03 01:23:11
包管理器,通过包管理器安装软件 一、主要参数 name :指定要安装的软件包名 state: present 安装 absent 卸载 二、示例 示例1 [ admin@node1 ~ ] $ ansible webserver -m package -a "name=openssl-devel state=present" -b --ask-sudo-pass 示例2 - name : install_from_source | Ensure dependencies for building from source are installed. package : "name={{ item }} state=installed" with_items : "{{ php_packages }}" ————Blueicex 2020/2/1 16:00 blueice1980@126.com 来源: CSDN 作者: blueicex2020 链接: https://blog.csdn.net/blueicex2017/article/details/104134674

Ansible模块——group

柔情痞子 提交于 2020-02-03 00:45:10
group 模块管理远程主机上的组。 一、常用参数 name :required,指定要操作的组名称。 state :指定组的状态,两个值可选,present,absent,默认为 present,设置为absent 表示删除组。 gid :指定组的gid。 二、示例 示例1 确保 ansible-demo3 主机中存在名为 testgroup 的组。 [ root@ansible-manager ~ ] # ansible ansible-demo3 -m group -a 'name=testgroup' 示例2 删除 ansible-demo3 主机中存在名为 testgroup2 的组,删除成功的前提是不能有用户把被删除的组当成主组。 [ root@ansible-manager ~ ] # ansible ansible-demo3 -m group -a 'name=testgroup2 state=absent' 示例3 确保 ansible-demo3 主机中存在名为 testgroup 的组,并且确定 testgroup 组的id为1008。 [ root@ansible-manager ~ ] # ansible ansible-demo3 -m group -a 'name=testgroup gid=1008' ————Blueicex 2020/2/1

Ansible模块——blockinfile

孤街浪徒 提交于 2020-02-03 00:07:10
blockinfile 模块在指定的文件中插入”一段文本”,这段文本是被标记过的,也就是,在这段文本上做了记号,以便在以后的操作中可以通过”标记”找到这段文本,然后修改或者删除它。 一、常用参数 path :required,指定要操作的文件。 block :指定要操作的”一段文本”,此参数有一个别名叫”content”,使用content或block的作用是相同的。 marker :在指定文件中插入一段文本,ansible会自动为这段文本添加两个标记,一个开始标记,一个结束标记,默认情况下,开始标记为# BEGIN ANSIBLE MANAGED BLOCK,结束标记为# END ANSIBLE MANAGED BLOCK,使用marker参数自定义”标记”。比如,marker=#{mark}test ,这样设置以后,开始标记变成了# BEGIN test,结束标记变成了# END test。 state : state参数有两个可选值,present与absent,插入和删除对应标记的段落。 insertafter :在插入一段文本时,默认会在文件的末尾插入文本,如果你想要将文本插入在某一行的后面,可以使用此参数指定对应的行,也可以使用正则表达式(python正则),表示将文本插入在符合正则表达式的行的后面。如果有多行文本都能够匹配对应的正则表达式,则以最后一个满足正则的行为准

ansible facts使用

假装没事ソ 提交于 2020-02-02 23:52:09
ansible facts 采集被管理设备的一个功能 [ root@192-168-2-250 ~ ] # ansible rongkang -m setup 172.20.100.108 | SUCCESS = > { "ansible_facts" : { "ansible_all_ipv4_addresses" : [ "172.18.0.1" , "172.17.0.1" , "172.20.100.108" ] , "ansible_all_ipv6_addresses" : [ "fe80::78c4:b7ff:feac:4775" , "fe80::b05d:f6ff:fe63:1f18" , "fe80::42:40ff:fe03:25e6" , "fe80::c14a:4493:465b:199b" ] , "ansible_apparmor" : { "status" : "disabled" } , "ansible_architecture" : "x86_64" , "ansible_bios_date" : "04/01/2014" , "ansible_bios_version" : "1.10.2-3.el7_4.1" , "ansible_br_94a16b290723" : { "active" : true, "device" : "br

Ansible模块——shell

久未见 提交于 2020-02-02 22:06:09
shell 模块在远程主机上执行命令。与 command 模块不同的是,shell 模块在远程主机中执行命令时,会经过远程主机上的 /bin/sh 程序处理。 一、常用参数 free_form :required,指定需要远程执行的命令。 chdir : 指定工作目录,在执行对应的命令之前,会先进入到 chdir 参数指定的目录中。 creates :指定一个文件,当指定的文件存在时,就不执行对应命令。 removes :使用此参数指定一个文件,当指定的文件不存在时,就不执行对应命令。 executable :指定 shell 文件,需要使用绝对路径。 二、示例 [ root@ansible-manager ~ ] # ansible host1 -m shell -a "chdir=/testdir echo mytest > test" [ root@ansible-manager ~ ] # ansible host1 -m shell -a "chdir=/testdir ls" [ root@ansible-manager ~ ] # ansible host1 -m shell -a "chdir=/testdir cat test" ————Blueicex 2020/2/2 18:06 blueice1980@126.com 来源: CSDN 作者:

Ansible模块——debug

混江龙づ霸主 提交于 2020-02-02 17:57:47
一、参数 msg :输出定义好的meassage 如果没有message 默认输出Hello world! var :输出变量的内容 不可与msg选项共用 二、示例 - debug : msg="System { { inventory_hostname } } has uuid { { ansible_product_uuid } } " - debug : msg="System { { inventory_hostname } } has gateway { { ansible_default_ipv4.gateway } } " when : ansible_default_ipv4.gateway is defined - shell : /usr/bin/uptime register : result - debug : var=result - name : Display all variables/facts known for a host debug : var=hostvars [ inventory_hostname ] ————Blueicex 2020/2/2 15:40 blueice1980@126.com 来源: CSDN 作者: blueicex2020 链接: https://blog.csdn.net/blueicex2017

1.Ansible——安装

做~自己de王妃 提交于 2020-02-02 02:24:18
一、What Ansible 1.Ansible柔和了众多其他运维工具的优先,比如pubbet和saltstack能实现的功能,Ansible的都能实现,Ansible是一款轻量级,Ansibe只是一个工具,不需要启动服务,可轻松实现分布式扩展,批量任何执行可写脚本,而且脚本不用分发到远程主机就可以执行。 2.Ansible高可靠性,轻量级的自动化工具,使用python语言开发 3.no agents 不需要再被管控知己上安装任何客户端 4.no server 无服务端 5.modules in any languages 基于模块工作,可以使用任意语言开发 6.yaml 使用yaml语言定制剧本playbook 7.ssh by default 基于ssh工作(默认) 二、Ansible安装 1.yum安装Ansible [admin@node1 ~]$ yum -y install ansible 2.集群配置 建立集群互信 [ admin@node1 ~ ] $ ssh - keygen - t rsa 然后把公钥发到集群家目录.ssh下 [ admin@node1 ~ ] $ for i in 130 131 132 135 ; do ssh - copy - id - i ~ / . ssh / id_rsa . pub admin@ 192.168 .20 . $i ;