IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> ansible的安装和部署 -> 正文阅读

[系统运维]ansible的安装和部署

ansible的安装

在网络通畅的Redhat企业8主机上执行以下命令安装EPEL

wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

[root@westoslinxu112 mnt]# rpm -ivh epel-release-latest-8.noarch.rpm
[root@westoslinxu112 mnt]# dnf search ansible ?
[root@westoslinxu112 mnt]# dnf install ansible.noarch -y?????? 安装成功

用脚本进行免密认证

[root@westoslinxu112 mnt]# ssh-keygen

[root@westoslinxu112 mnt]# vim keygen_ssh.sh
[root@westoslinxu112 mnt]# cat keygen_ssh.sh
#!/bin/bash
AUTOSSH()
{
/usr/bin/expect << EOF
spawn ssh-copy-id -i /root/.ssh/id_rsa.pub? root@172.25.254.$i
expect {
"yes/no" { send "yes\r"; exp_continue }
"password" { send "westos\r" }
}
expect eof
EOF
}

for i in 212
do
? AUTOSSH?? ?
done?? ?

构建ansible清单

[root@westoslinxu112 mnt]# cd /etc/ansible
[root@westoslinxu112 ansible]# ls
ansible.cfg? hosts? roles
[root@westoslinxu112 ansible]# vim hosts

[westos]
172.25.254.112

[westos1]
172.25.254.212
172.25.254.112

[root@westoslinxu112 ansible]# ansible all --list-hosts
? hosts (2):
??? 172.25.254.112
??? 172.25.254.212
[root@westoslinxu112 ansible]# ansible westos --list-hosts
? hosts (1):
??? 172.25.254.112
[root@westoslinxu112 ansible]# ansible westos1 --list-hosts
? hosts (2):
??? 172.25.254.212
??? 172.25.254.112

[root@westoslinxu112 ansible]# vim hosts

[westos]
172.25.254.112

[westos1]
172.25.254.212
172.25.254.112

nodea.westos.org
[root@westoslinxu112 ansible]# ansible westos1 --list-hosts
? hosts (3):
??? 172.25.254.212
??? 172.25.254.112
??? nodea.westos.org
[root@westoslinxu112 ansible]# ansible westos --list-hosts
? hosts (1):
??? 172.25.254.112
[root@westoslinxu112 ansible]# ansible all --list-hosts
? hosts (3):
??? 172.25.254.112
??? 172.25.254.212
??? nodea.westos.org

[root@westoslinxu112 ansible]# vim hosts

172.25.254.198
[westos]
172.25.254.112

[westos1]
172.25.254.212
172.25.254.112

nodea.westos.org

[root@westoslinxu112 ansible]# ansible all --list-hosts
? hosts (4):
??? 172.25.254.198
??? 172.25.254.112
??? 172.25.254.212
??? nodea.westos.org

[root@westoslinxu112 ansible]# ansible ungrouped --list-hosts
? hosts (1):
??? 172.25.254.198

镶嵌清单

?[root@westoslinxu112 ansible]# vim hosts

[westosall:children]
westos
westos1

[root@westoslinxu112 ansible]# ansible westosall --list
? hosts (3):
??? 172.25.254.112
??? 172.25.254.212
??? nodea.westos.org

[root@westoslinxu112 ansible]# vim hosts

[westos1]
172.25.254.[100:110]

[root@westoslinxu112 ansible]# ansible westos1 --list
? hosts (11):
??? 172.25.254.100
??? 172.25.254.101
??? 172.25.254.102
??? 172.25.254.103
??? 172.25.254.104
??? 172.25.254.105
??? 172.25.254.106
??? 172.25.254.107
??? 172.25.254.108
??? 172.25.254.109
??? 172.25.254.110

指定清单

[root@westoslinxu112 ansible]# cd /mnt

[root@westoslinxu112 ansible]# vim /mnt/westos

[lee1]
172.25.254.[200:210]

[lee2]
nodea.westos.org

[root@westoslinxu112 mnt]# ansible -i /mnt/westos lee --list

[root@westoslinxu112 mnt]# ansible -i /mnt/westos lee1 --list
`? hosts (11):
??? 172.25.254.200
??? 172.25.254.201
??? 172.25.254.202
??? 172.25.254.203
??? 172.25.254.204
??? 172.25.254.205
??? 172.25.254.206
??? 172.25.254.207
??? 172.25.254.208
??? 172.25.254.209
??? 172.25.254.210

?ansible的正则表达式

ansible命令指定清单的正则表达式
*???????????????????????????????????????? ##所有
?????????????????????????????????????????? ##172.25.254.*
?????????????????????????????????????????? ##westos*

:????????????????????????????????????????? ##逻辑或
?????????????????????????????????????????? ##westos1:linux
?????????????????????????????????????????? ##172.25.254.100:172.25.254.200

:&???????????????????????????????????????? ##逻辑与
?????????????????????????????????????????? ? ##westos1:&linux
???????????????????????????????????????? ?? ##主机即在westos1清单也在linux清单中

:! ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ##逻辑非
????????????????????????????????????????? ? ##westos1:!linux
?????????????????????????????????????? ? ?? ##在westos1中不在linux中

~??????????????????????????????????????????? ##以关键字开头

~(str1|str2)???????????????????????????? ##以条件1或者条件2开头

[root@westoslinxu112 ansible]# ansible 172* --list
? hosts (2):
??? 172.25.254.212
??? 172.25.254.112
[root@westoslinxu112 ansible]# ansible node* --list
? hosts (1):
??? nodea.westos.org
[root@westoslinxu112 ansible]# ansible node*:172* --list
? hosts (3):
??? nodea.westos.org
??? 172.25.254.212
??? 172.25.254.112
[root@westoslinxu112 ansible]# ansible westos:westos1 --list
? hosts (3):
??? 172.25.254.212
??? 172.25.254.112
??? nodea.westos.org
[root@westoslinxu112 ansible]# ansible 'westos1:!westos' --list
? hosts (2):
??? 172.25.254.112
??? nodea.westos.org
[root@westoslinxu112 ansible]# ansible '~node' --list
? hosts (1):
??? nodea.westos.org
[root@westoslinxu112 ansible]# ansible 'westos*' --list
? hosts (3):
??? 172.25.254.212
??? 172.25.254.112
??? nodea.westos.org
[root@westoslinxu112 ansible]# ansible '*org' --list
? hosts (1):
??? nodea.westos.org
[root@westoslinxu112 ansible]# ansible '~(node|172)' --list
? hosts (3):
??? 172.25.254.212
??? 172.25.254.112
??? nodea.westos.org

?Ansible配置文件参数详解

?ansible 清单中组名称 -m 模块 -u remote_user

?1.配置文件的分类与优先级
/etc/ansible/ansible.cfg???????????? #基本配置文件,找不到其他配置文件此文件生效
~/.ansible.cfg????????????????????????????? #用户当前目录中没有ansible.cfg此文件生效
./ansible.cfg??????????????????????????????? #优先级最高?

?2.常用配置参数

?inventory? = /etc/ansible/hosts????????? 默认清单

remote_user = root??????????????? ? ? ? ? ? ? ? ?? 在受管主机上登陆的用户名称,未指定使用当前用户 ???

local_tmp????? = ~/.ansible/tmp??????????????? 本机临时命令执行目录

module_name = command??????????????????? 默认模块,默认使用command,可以修改为shel

host_key_checking = False????????????????? 第一次连接受管主机时是否要输入yes建立host_key

构建用户级Ansible操作环境

[root@westoslinxu112 ansible]# useradd devops
[root@westoslinxu112 ansible]# su - devops
[devops@westoslinxu112 ~]$ mkdir .ansible
[devops@westoslinxu112 ~]$ cd .ansible

[devops@westoslinxu112 .ansible]$ vim inventory

[westos]
172.25.254.212

[devops@westoslinxu112 .ansible]$ vim ansible.cfg

[defaults]
inventory= ~/.ansible/inventory???????? ~/?? 普通用户家目录
host_key_checking = False
remote_user = devops

[devops@westoslinxu112 .ansible]$ ansible westos -m shell -a 'useradd devops' -k -u root
SSH password:
172.25.254.212 | CHANGED | rc=0 >>

[devops@westoslinxu112 .ansible]$ ansible westos -m shell -a 'echo westos | passwd --stdin devops' -k -u root
SSH password:
172.25.254.212 | CHANGED | rc=0 >>
Changing password for user devops.
passwd: all authentication tokens updated successfully.
[devops@westoslinxu112 .ansible]$ ansible westos -m shell -a 'echo "devops ALL=(root) NOPASSWD: ALL" >>? /etc/sudoers' -k -u root
SSH password:
172.25.254.212 | CHANGED | rc=0 >>

[devops@westoslinxu112 .ansible]$ vim ansible.cfg

[defaults]
inventory= ~/.ansible/inventory
host_key_checking = False
remote_user = devops
module_name = shell

[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False

[devops@westoslinxu112 .ansible]$ ansible westos -m shell -a 'mkdir -p /home/devops/.ssh' -k
SSH password:

172.25.254.212 | CHANGED | rc=0 >>

[devops@westoslinxu112 .ansible]$ ansible westos -m shell -a 'chown devops.devops /home/devops/.ssh' -k
SSH password:

172.25.254.212 | CHANGED | rc=0 >>

[devops@westoslinxu112 .ansible]$ ansible westos -m shell -a 'chmod 700 /home/devops/.ssh' -k
SSH password:

172.25.254.212 | CHANGED | rc=0 >>

[devops@westoslinxu112 .ansible]$ ssh-keygen

[devops@westoslinxu112 .ansible]$ ansible westos -m copy -a 'src=/home/devops/.ssh/id_rsa.pub dest=/home/devops/.ssh/authorized_keys mode=0600 owner=devops group=devops' -k???????????????????? src? 发送密钥的来源? dest发送密钥的位置?? mode文件权限

[devops@westoslinxu112 .ansible]$ ansible westos -m ping
172.25.254.212 | SUCCESS => {
??? "ansible_facts": {
??????? "discovered_interpreter_python": "/usr/libexec/platform-python"
??? },
??? "changed": false,
??? "ping": "pong"???????????????????? ---------------------------> 成功
}

?

?

?

?

?

?

?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-12-08 14:12:36  更:2021-12-08 14:13:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 3:23:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码