首页 > 其他分享 >ansible01-ansible安装配置

ansible01-ansible安装配置

时间:2024-05-10 09:56:59浏览次数:21  
标签:ansible01 ping etc ansible ssh 模块 主机 安装

中文权威指南
http://www.ansible.com.cn/docs/playbooks_variables.html#yaml

安装

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
wget -O /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
依赖   paramiko、PyYAML、Jinja2、httplib2、six
yum install ansible

配置

vim /etc/ansible/ansible.cfg
inventory = /etc/ansible/hosts    # 指定分组文件路径
host_key_checking = False         # ssh主机不用输入yes

加快ssh连接速度

vim /root/ssh/sshd_config
UseDNS no

定义主机

vim /etc/ansible/hosts
[all:children]
web
db
other

[web]
web1
web2

[db]
db[1:20]    # 指定多台主机

[other]
cache ansible_ssh_user="root" ansible_ssh_pass="password"  # 自定义ssh参数

列出所有主机

ansible all --list-hosts

批量部署证书文件

主机无密钥连接其他设备
ssh-keygen -t rsa -b 2048 -N '' -f ~/.ssh/id_rsa -q
ansible all -m authorized_key -a "user=root exclusive=true manage_dir=true key='$(cat ~/.ssh/id_rsa.pub)'" -k

# -a 后的参数用空格分开,写在一行
# -k 输入的是被连接的主机密码,如果密码不同,将密码定义在host文件中,如下所示

例如
[test]
10.xxx ansible_connection=ssh ansible_ssh_user=xxx ansible_ssh_pass="xxxxxx"
10.xxx ansible_connection=ssh ansible_ssh_user=xxx ansible_ssh_pass="xxxxxx"

# user=root              给哪个用户部署公钥
# exclusive=true         密钥追加在已部署密钥之后
# manage_dir=true        自动赋权和创建文件夹
# key='$(cat ~/.ssh/id_rsa.pub)'    指定公钥的内容

2.详细配置 用法 原理

命令选项

ansible命令格式:  ansible 主机组 选项

选项
-i 指定主机文件路径,默认/etc/ansible/hosts
-M 指定模块的路径
-m 使用模块,默认command模块
-a 模块参数
-k 使用交互式登陆密码
-K 询问root用户的ssh密码
-b 以root身份访问host主机
-e 定义变量
-v 详细信息 
-vvvv 开启debug模式

ansible配置文件查找顺序

(1)环境变量 ANSIBLE_CONFIG定义的配置文件,ANSIBLE_CONFIG环境变量可以改变,后边加ansible.cfg的路径
(2)当前目录下的./ansible.cfg文件
(3)当前用户家目录下~/ansible.cfg文件
(4)/etc/ansible/ansible.cfg文件(默认配置文件路径)

inventory文件参数说明(解决特殊的网络环境)

ansible_ssh_host
将要连接的远程主机名与你想要的设定的主机别名不同,可以通过此变量设置

ansible_ssh_port
ssh端口号:如果不是默认的端口号,通过此变量设置

ansible_ssh_user
默认的ssh用户名

ansible_ssh_pass
ssh密码(这种方式并不安全,我们强烈建议使用--ask-pass或SSH密钥

ansible_sudo_pass
sudo密码(建议使用--ask-sudo-pass)

ansible_sudo_exe(new in version 1.8)
sudo命令路径(适用于1.8及以上版本)

ansible_connection
与主机的连接类型,如:local,ssh或paramiko,1.2以前默认使用patamilk,1.2。以后默认使用‘smart’,它会根据是否支持ControlPersist来判断‘ssh’方式是否可行

ansible_ssh_private_key_file
ssh使用的私钥文件,使用于有多个密钥,而你不想使用SSH代理的情况

Ansible_shell_type
目标喜用的shell类型,默认情况下,命令的执行使用sh语法,可设置为csh或fish

ansible_python_interpreter
目标主机的python路径,使用情况:系统中有多个Python,或者命令路径不是“/usr /bin/python”

其他运维工具

Saltstack    Chef

目录结构

/usr/bin/ansible              主程序,临时命令执行工具  
/usr/bin/ansible-doc          查看模块使用手册
/usr/bin/ansible-galaxy       优秀roles模块的官方平台
/usr/bin/ansible-playbook     定制自动化任务,编排剧本工具
/usr/bin/ansible-pull         远程执行命令的工具
/usr/bin/ansible-vault        文件加密工具(playbook中可能有明文,为了安全,加密)
/usr/bin/ansible-console      基于console界面与用户交互的执行工具

帮助

ansible-doc ping       # 显示ping模块详细帮助
ansibel-doc -s ping    # 显示ping模块简要帮助
ansible-doc -l         # 列出所有模块和简要说明

主机模式

all 或 *             # 表示inventory中的所有主机。
,                    # 单个主机用逗号间隔    例如   host1,host2
:                    # 取并集     例如  host1:host2:group1  表⽰2台主机加⼀个主机组。
:&                   # 取交集     例如  group1:&group2  表⽰两个主机组中都有的主机。
:!                   # 排除       例如  group1:\!host1  表⽰group1中排除host1主机的剩余主机。

通配符               # 例如   ansible web* -m ping
数字范围             # 例如   ansible web[0-5] -m ping
字母范围             # 例如   ansible web[a-d] -m ping
正则表达式           # 以"~"开头   例如 ansible ~web -m ping

ansible命令执行过程

1.加载自己的配置文件 默认/etc/ansible/ansible.cfg
2.加载对应的模块文件
3.通过ansible生成对应的临时python文件,并将该文件传输给程服务器的对应用户执行  ~/.ansible/tmp/ansible-tmp-随机数字/xxx.py
4.给文件执行权限
5.执行并返回结果
6.删除临时文件,sleep 0 退出

调用sleep 0可以释放cpu时间,让线程马上重新回到就绪队列而非等待队列,sleep 0释放当前线程所剩余的时间片(如果有剩余的话),这样可以让操作系统切换其他线程来执行,提升效率。

交互式命令

直接执行 ansible-console
命令行提示
root@all (3)[f:5]

说明
root        执行命令的用户
all         执行命令的主机,对应inventory中的主机
(3)         共有3个主机受控
[f:5]       并发线程数5

命令
list        列出当前主机列表
cd host     切换当前受控的主机列表为host主机组,也可切换单个主机,指定ip即可
forsk 10    修改并发数为10
?          列出所有内置命令
command hostname     用command模块执行hostname命令

标签:ansible01,ping,etc,ansible,ssh,模块,主机,安装
From: https://www.cnblogs.com/lixunblogs/p/18167316

相关文章

  • ansible04-ansible-playbook
    4.ansible-playbookplaybook文件示例执行playbook,拷贝服务配置文件到目标主机后,对原文件修改后再次执行playbook,已启动的服务不会再次重启-hosts:host10 remote_user:root tasks:  -name:installhttpd   yum:name=httpdstate=present  -name:......
  • ansible06-ansible-galaxy
    ansible系列命令ansible-galaxy连接https://galaxy.ansible.com下载相应的roles列出所有已经安装的galaxyansible-galaxylist从官网下载ansible-galaxyinstallgeerlingguy.nginx一般下载至/etc/ansible/roles/geerlingguy.nginx删除andible-galaxyremovegeerli......
  • Docker01-安装Docker
    Docker安装脚本yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2yum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyumcleanallyummakecacheyum-yinstalldocker-cesystemctlstartdockersystemctlenab......
  • ansible02-ansible变量的定义与引用
    4.1ansible变量的定义与引用playbook中变量的定义变量名只能由数字、字母、下划线组成,且只能由字母开头变量的来源(1)setup模块中的所有变量都可以直接调用(2)在/etc/ansible/hosts中定义- 普通变量:主机组中主机单独定义,优先级高于公共变量- 公共变量:也称组变量,针对主......
  • 安装oh-my-zsh(命令行工具)
    目录一、安装zsh、git、wget二、安装运行脚本1、curl/wget下载2、手动下载三、切换主题1、编辑配置文件2、切换主题四、安装插件1、zsh-syntax-highlighting(高亮语法错误)2、zsh-autosuggestions(自动补全)五、更多优化配置一、安装zsh、git、wget安装oh-my-zsh的前提需要先安装zs......
  • VMware vRealize Operations Manager 8.6.2 安装和配置
    早就垂涎vROPS很久了,本次正好做个安装记录,本地的虚拟化环境是VCSA6.7.0为啥选择vROPS8.6.2,因为他是最后一个支持VCSA6.7.0的版本https://interopmatrix.vmware.com/Interoperability?col=1427,9713,6377,6308,5694,5186,5101,4281&row=2,2736,2862,3222,3457,8393&isHidePatc......
  • vmware安装群辉NAS
    准备版本不一致可能无法启动需要vmware需要应道引导文件Releases·fbelavenuto/arpl·GitHub群辉系统SynologyArchiveDownloadSite-Indexof/download/Os/DSM/7.1.1-42962-1-NanoPacked选择:synology_apollolake_918+.pat创建NAS虚拟机创建虚拟机,选......
  • macos安装miniconda
    macos自带python本机版本为3.9whichpython查看Python路径python--version查看Python版本到miniconda官网找合适的版本,下载并执行#文件名是自己下载的sh文件,-p后面填安装路径,默认装到user下#-b表示将环境变量自动写入到~/.bash文件中shMiniconda3-py39_24.3.0-0-MacO......
  • Springboot项目的jar包的运行方式以及使用yum安装java后忘记了位置
    SpringBoot项目打包后的jar的部署方式这里我写了五种部署方式1.直接启动java-jarxxx.jar这种方式就只适合自己在测试时用一下,关闭会话就能停止运行属实是方便。2.后台启动java-jarxxx.jar&在后台静默启动,同样关闭会话也会停止,优点是和上面一样,日志是打印在窗口的3......
  • VMWare Workstation安装CentOS7使用桥接模式无法ping通问题
    无线网络下VMWare+CentOS7使用桥接模式无法联通网络问题_vmwarecentos桥接模式连不上网-CSDN博客编辑->虚拟网络编辑器VMnet0自动模式不行,要选择对应的网卡;可在网络连接里等方式查看网卡名称;不是管理员身份运行VMWareWorkstation默认不显示VMnet0,右下角有个啥按钮,点击一下......