自动化运维-Ansible
文章平均质量分 60
Ansible 基础知识
shark_西瓜甜
80后运维、运维开发职业从事者
展开
-
这才是批量推送公钥的正确方式 一条命令批量推出公钥,ssh 脚本方式已过时 ansible 才是王道
目的是不使用 expect 程序,给远程服务器的任意用户批量推送公钥,进行免密登录,也就是可以不使用初始化脚本了,使用 ansible 的模块就可以办到。总体思路是这样的:首先创建一个加密的文件,并且把我们使用的变量和值(就是连接到远程服务的ssh 用户名的密码)编辑到这个加密的文件种。之后让 ansible 使用,这样可以保护我们ssh 用户的密码不被泄露。之后在 playbook 中使用这个加密文件,并且在使用模块 authorized_key给指定的远程主机用户发送用于认证的公钥。一、临时命令原创 2020-09-20 20:16:14 · 888 阅读 · 0 评论 -
Ansible-01-基础
一、基本介绍Ansible 是一个 IT 自动化工具。它能配置系统、部署软件、编排更复杂的 IT 任务,如连续部署或零停机时间滚动更新。Ansible 用 Python 编写,尽管市面上已经有很多可供选择的配置管理解决方案(例如 Salt、Puppet、Chef等),但它们各有优劣,而Ansible的特点在于它的简洁。让 Ansible 在主流的配置管理系统中与众不同的一点便是,它并不需要你在想要管理的每个机器上安装自己的客户端组件,就可以对所要管理的机器进行管理,管理服务器和被管理机器之间使用的是原创 2021-05-23 21:24:36 · 1686 阅读 · 11 评论 -
Ansible-02-Playbook
一、 Ad-Hoc 的问题通过对 AD-HOC 的学习,我们发现 AD-HOC 每次只能在被管理节点上执行简单的命令。而日常工作中,我们往往面临的是一系列的复杂操作,例如我们有可能需要安装软件、更新配置、启动服务等等一系列操作的结合。此时再通过 AD-HOC 去完成任务就有些力不从心了。在这种场景下,Ansible引进了 PLAYBOOK 来帮忙我们解决这样复杂问题。二、 PlayBook是什么Playbook 也通常被大家翻译成剧本。可以认为它是Ansible 自定义的一门语言(可以将 Pla原创 2021-05-23 21:30:02 · 529 阅读 · 0 评论 -
Ansible-03-变量
一、 Ansible 变量介绍我们在PlayBook一节中,将PlayBook类比成了Linux中的shell。那么它作为一门Ansible特殊的语言,肯定要涉及到变量定义、控制结构的使用等特性。在这一节中主要讨论变量的定义和使用。二、变量命名规则变量的名字由字母、下划线和数字组成,必须以字母开头。如下变量命名为正确:good_a OKok_b OK如下变量命名为错误:_aaa FAIL2_bb FAIL保留关键字不能作为变量名称add, append, as_i原创 2021-05-23 21:54:08 · 436 阅读 · 0 评论 -
Ansible-04-Playbook中的循环和判断
一、循环- name: 测试变量 hosts: webNginx gather_facts: no vars: nums: [1,2,3] some_dic: a: 1 b: 2 info: - user: shark age: 18 - user: tom age: 19 tasks: - name: 循环列表 loop: "{{ nums }}" #w原创 2021-05-24 21:01:45 · 466 阅读 · 0 评论 -
Ansible-05-Tags和Handlers
一、Tags 标签在一个 playbook 中可以给一部分 task(任务) 打标签,之后执行的时候使用 -t 选项并且指定具体的 tags 的名字,可以实现仅执行这部分 task。- name: 测试变量 hosts: slb gather_facts: no tasks: - name: 任务1 debug: msg: "task 1" tags: qf - name: 任务2 debug: msg:原创 2021-05-25 18:20:22 · 312 阅读 · 0 评论 -
Ansible-06-模板
模板介绍Ansible使用Jinja2模板来启用动态表达式和访问变量。比如:模板文件内容如下:IP 地址: {{ ip }}当定义 ip=192.168.122.10 这个变量时候,通过上面的模板文件可以产生出如下内容的新文件IP 地址: 192.168.122.10原来的模板文件不变。在目标计算机上发送和执行任务之前,所有模板都在Ansible控制器上进行。Jinja2 模板基本语法Jinja模板只是一个文本文件,一般文件名使用 .j2 为后缀。模板包含变量和或表达式,在渲染模板时原创 2021-05-25 22:00:54 · 288 阅读 · 0 评论 -
ansible-07-实战部署nginx
- name: 部署 nginx hosts: node1 gather_facts: no vars: main_conf: nginx.conf.j2 sub_conf: default.conf tasks: - name: 传输仓库文件 copy: src: nginx.repo dest: /etc/yum.repos.d/nginx.repo - name: 安装 nginx yum: nam原创 2021-05-26 20:53:01 · 361 阅读 · 0 评论 -
Ansible-08-角色
一、介绍role 角色就是把一个 playbook 中的代码按照一定的规则分解开。模块化编程的思想组织 playbook 的代码。二、role 的规则先看一个示例:webservers/├── defaults│ └── main.yml├── files├── handlers│ └── main.yml├── meta│ └── main.yml├── tasks│ └── main.yml├── templates└── vars └── mai原创 2021-05-26 21:06:56 · 302 阅读 · 0 评论