第一章 Ansible自动化部署K8S集群-最新

> 讲师:李振良
>
> 官方网站: http://www.ctnrs.com  
>
> 第一章:《Ansible自动化部署K8S集群》
>
> 说明:
>
> 1. 强烈建议学习课堂视频,更多细节都在里面!
> 2. 本文档为内部学员资料,请不要随意转发。  
# 一、Ansible自动化部署K8S集群
## 1.1 Ansible介绍
Ansible是一种IT自动化工具。它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部署,滚动更新。Ansible适用于管理企业IT基础设施,从具有少数主机的小规模到数千个实例的企业环境。Ansible也是一种简单的自动化语言,可以完美地描述IT应用程序基础结构。
具备以下三个特点:
 - 简单:减少学习成本   
 - 强大:协调应用程序生命周期 
 - 无代理:可预测,可靠和安全
使用文档: https://docs.ansible.com/ 
安装Ansible:yum install ansible -y
![](https://k8s-1252881505.cos.ap-beijing.myqcloud.com/k8s-2/ansible.png)
- Inventory:Ansible管理的主机信息,包括IP地址、SSH端口、账号、密码等
- Modules:任务均有模块完成,也可以自定义模块,例如经常用的脚本。
- Plugins:使用插件增加Ansible核心功能,自身提供了很多插件,也可以自定义插件。例如connection插件,用于连接目标主机。
- Playbooks:“剧本”,模块化定义一系列任务,供外部统一调用。Ansible核心功能。
## 1.2 主机清单
```
[webservers]
alpha.example.org
beta.example.org
192.168.1.100
www[001:006].example.com
[dbservers]
db01.intranet.mydomain.net
db02.intranet.mydomain.net
10.25.1.56
10.25.1.57
db-[99:101]-node.example.com
```
## 1.3 命令行使用
ad-hoc命令可以输入内容,快速执行某个操作,但不希望留存记录。
ad-hoc命令是理解Ansible和在学习playbooks之前需要掌握的基础知识。
一般来说,Ansible的真正能力在于剧本。
### 1、连接远程主机认证
SSH密码认证:
```
[webservers]
192.168.1.100:22 ansible_ssh_user=root ansible_ssh_pass=’123456’
192.168.1.101:22 ansible_ssh_user=root ansible_ssh_pass=’123456’
```
SSH密钥对认证:
```
[webservers]
10.206.240.111:22 ansible_ssh_user=root ansible_ssh_key=/root/.ssh/id_rsa 
10.206.240.112:22 ansible_ssh_user=root
也可以ansible.cfg在配置文件中指定:
[defaults]
private_key_file = /root/.ssh/id_rsa  # 默认路径
```
### 2、常用选项
| 选项                                  | 描述                     |
| ------------------------------------- | ------------------------ |
| -C, --check                           | 运行检查,不执行任何操作 |
| -e EXTRA_VARS,--extra-vars=EXTRA_VARS | 设置附加变量 key=value   |
| -u REMOTE_USER, --user=REMOTE_USER    | SSH连接用户,默认None    |
| -k, --ask-pass                        | SSH连接用户密码          |
| -b, --become                          | 提权,默认root           |
| -K, --ask-become-pass                 | 提权密码                 |
### 3、命令行使用
```ansible all -m ping
ansible all -m ping
ansible all -m shell -a "ls /root" -u root -k 
ansible webservers -m copy –a "src=/etc/hosts dest=/tmp/hosts"
```
## 1.4 常用模块
ansible-doc –l 查看所有模块
ansible-doc –s copy 查看模块文档
 模块文档:https://docs.ansible.com/ansible/latest/modules/modules_by_category.html 
### 1、shell
在目标主机执行shell命令。
```
- name: 将命令结果输出到指定文件
  shell: somescript.sh >> somelog.txt
- name: 切换目录执行命令
  shell:
    cmd: ls -l | grep log
    chdir: somedir/
- name: 编写脚本
  shell: |
      if [ 0 -eq 0 ]; then
         echo yes > /tmp/result
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值