ansible链接电脑主机配置需要密码怎么配置

ljl_ 的BLOG
用户名:ljl_
文章数:54
评论数:14
访问量:31564
注册日期:
阅读量:5863
阅读量:12276
阅读量:410102
阅读量:1098279
51CTO推荐博文
Ansible 提供一种最简单的方式用于发布、管理和编排计算机系统的工具,你可在数分钟内搞定。Ansible 是一个模型驱动的配置管理器,支持多节点发布、远程任务执行。默认使用 SSH 进行远程连接。无需在被管理节点上安装附加软件,可使用各种编程语言进行扩展。650) this.width=650;" src="http://static.oschina.net/uploads/img/64642_9GyL.png" alt="ansible architecture diagram" style="margin:0padding:0border:0width:566height:439" />系统环境:Centos 6.4 x86_641.设置yum源:[root@localhost yum.repos.d]# cat epel.repo
baseurl=/fedora-epel/6/x86_64/
gpgcheck=1
gpgkey=/fedora-epel/RPM-GPG-KEY-EPEL-62.安装ansibleyum -y install ansible3.编辑ansible配置文件[root@localhost ~]# vi /etc/ansible/ansible.cfg
= /etc/ansible/hosts
= /usr/share/ansible
remote_tmp
= $HOME/.ansible/tmp
poll_interval
#ask_sudo_pass = True
remote_port
#远程连接端口
remote_user = luojianlong
#远程执行命令的用户
log_path = /var/log/ansible.log
#ansible日志文件位置4.设置ansible主机到被管理主机的免密码登录,这里不做详细介绍。5.编辑/etc/ansible/hosts ,指定被管理的对象[root@localhost ~]# vi /etc/ansible/hosts
[webservers]
alpha.example.org
#可以使用域名或者IP地址
beta.example.org
192.168.1.100
192.168.1.110
# If you have multiple hosts following a pattern you can specify
# them like this:
www[001:006].
#可以使用通配符
# Ex 3: A collection of database servers in the 'dbservers' group
[dbservers]
db01.intranet.mydomain.net
db02.intranet.mydomain.net
10.25.1.56
10.25.1.57
# Here's another example of host ranges, this time there are no
# leading 0s:
db-[99:101]-6.ansible命令的使用[root@localhost ~]# ansible weidu-nginx-web -s -u luojianlong -a "ls /root"
#ansible后面加hosts文件指定的组名字
指定执行sudo命令
设定远程连接的用户
远程执行的命令[root@localhost ~]ansible all -m copy -a "src=/root/hequan/shell/t.sh dest=/tmp/ mode=755 owner=root group=root" -k -u root
[root@localhost ~]ansible all -m file -a "dest=/tmp/t.sh mode=755 owner=root group=root" -k -u root
[root@localhost ~]ansible all -i /etc/ansible/serverlist -m shell -a "/tmp/t.sh" -k -u root
[root@localhost ~]ansible all -m user -a "name=foo password=&crypted password here&"
[root@localhost ~]ansible all -m user -a "name=foo state=absent"
#-i:指定 inventory 文件,使用当前目录下的 hosts
#all:针对 hosts 定义的所有主机执行,这里也可以指定组名或模式
#-m:指定所用的模块,我们使用 Ansible 内置的 ping 模块来检查能否正常管理远端机器使用-s时,连接客户端的用户需要设置/etc/sudoers文件,使用户执行sudo时不需要密码注意:客户端如果是redhat/Centos 5.7以前的话,需要升级python程序。本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)8907人阅读
Linux(123)
Python(4)
最近在作自动化部署发布.读了一下ansible的代码和工作流.
需要部署一些免密码登录的操作. 记录下
现在有两台机器, 一台服务器A安装了ansible, 一台是服务器B需要被操作的.
随便建立一个项目文件夹.
为了方便管理, 我这样划分的项目
在conf里面放所有的配置, 包括hosts和ansible.cfg, 然后作一个软链接到最外面. ansible.cfg的优先级将是当前目录最高
在ssh_keys里面, 存放着很多服务器的私钥. 注意是私钥.
ansible用了paramiko库.
ansible.cfg 配置如下. 注意ssh_connection下面的contrl_path=./ssh_keys, 不指定的话会一直报group-readable or world-readable and thus insecure
[defaults]
= ./conf/hosts
pull_interval
= paramiko
module_lang
host_key_checking = False
remote_tmp
= $HOME/.ansible/tmp
[ssh_connection]
scp_if_ssh
control_path = ./ssh_keys
去服务器B上生成密钥对,
#ssh root@服务器B
#ssh-keygen 如果要重命名可以自己指定, 回车后生成密钥对
# echo ~/.ssh/id_rsa.pub && known_hosts
这里把生成的公钥放入known_hosts
如果自己配置了ssh_config, 关闭了known_hosts, 可能就需要写进~/.authorized_keys里面去了.
把服务器B上的私钥回传到ansible执行的服务器A的ssh_keys里, 命名为
服务器B_ip_.key
给ssh_keys文件夹授权为700, 一定要700, 其它的都会报错.
建立hosts文件里面指定server, 每个server一行.这里我测试就写一行.
[test_server]
10.0.1.5 ansible_ssh_private_key_file=ssh_keys/10.0.1.5.key ansible_ssh_user=root
现在回到服务器A的这个ansible文件夹下测试:
ansible test_server -m shell -a ‘ls -la /etc/hostname’
无密码成功.
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:840469次
积分:8572
积分:8572
排名:第1917名
原创:170篇
转载:12篇
评论:142条
阅读:4923
文章:101篇
阅读:393927
(1)(1)(1)(1)(1)(1)(1)(1)(1)(2)(3)(2)(1)(2)(2)(2)(1)(2)(1)(1)(1)(1)(4)(1)(2)(1)(1)(2)(1)(4)(3)(3)(2)(4)(1)(1)(2)(2)(2)(3)(6)(2)(1)(3)(2)(4)(5)(4)(1)(1)(2)(1)(2)(4)(9)(5)(3)(1)(7)(5)(1)(3)(16)(2)(3)(5)(2)(5)(10)Ansible配置及使用_Linux教程_Linux公社-Linux系统门户网站
你好,游客
Ansible配置及使用
来源:Linux&
作者:huangzp
Ansible特点
基于python语言开发
不需要安装客户端,通过sshd通信
基于模块工作,模块支持多种语言开发
支持编写yaml格式的playbook,配置文件缩进2行
提供UI,流量器图形化 /tower
开源UI /alaxli/ansible_ui
一、Ansible安装配置
& & master:172.16.115.157
& & agent:172.16.115.202
2. 服务端安装ansible,客户端无需安装,关闭selinux
& & setenforce 0
& & yum install -y epel-release
& & yum install -y ansible
& & yum install -y openssl-clients
3. 服务端生成密钥对,目录/root/.ssh/
& & ssh-keygen -t rsa & //无需设置单独密码,生成公钥和秘钥id_rsa &id_rsa.pub
4. 将服务端公钥内容放到客户机和本机认证文件中,授600权限
& & scp /root/.ssh/id-rsa.pub & ip:/root/.ssh/authorized_keys
& & cat /root/.ssh/id-rsa.pub &&/root/.ssh/authorized_keys &// ssh 127.0.0.1
& & chmod 600 /root/.ssh/authorized_keys
5. 修改ansible配置文件/etc/ansible/hosts,添加组以及组内IP
& &&[testhost] && & & & & & #自定义主机组名字
& & 172.16.115.157 & & #组内机器ip或者机器域名(需先配置好/etc/hosts)
& & 127.0.0.1
二、命令模块使用
1. Ansible文档使用
& & ansible-doc -l & & & &#&列出所有模块
& & ansible-doc cron &&# 查看指定模块文档
2. ping命令模块
& & ansible testhost -m ping &#测试机器是否在线
3. command命令模块
& & ansible testhost -m command -a 'w' & & & & & & &#批量执行命令;-m 后面跟模块名;-a 跟命令
& & ansible 172.16.115.202 -m command -a 'w' & #单独执行命令
4.&shell命令模块
& & 说明:shell包含command,并且支持管道和远程执行脚本
& & ansible testhost -m -a 'w'
& & 注:可能用到的扩展包:yum install -y libselinux-python &
5. copy命令模块-拷贝目录和文件
& & 说明:可同时指定用户属主和权限,源目录拷贝到目标目录下面去,如果目标目录不存在,则会自动创建
& & ansible
-m copy -a "src=/etc/ansible dest=/tmp/ansibletest owner=root group=root mode=0755"
& & ansible
-m copy -a "src=/etc/passwd dest=/tmp/1.txt"
6. cron命令模块-添加和删除计任务
& & 说明:name计划名称,job计划动作
& & ansible testhost -m -a "name='test_cron' job='/bin/touch /tmp/ansible_test02.txt day='1-30' weekday='4'"
& & ansible testhost -m cron -a "name='test_cron' state='absent'"
& & 注:分钟minute &小时hour &日期day &月份month &周weekday
7. yum命令模块-安装rpm包
& & 说明:rpm需写全称(实际,远程执行shell命令更方便),可以填写state=installed
& & ansible testhost -m yum -a "name=iftop"
& & 注:双引号中没有单引号
8. service命令模块-管理rpm服务
& & 说明:state状态可以为:启动start、停止stop等;enabled为开机启动
& & ansible testhost -m service -a "name=iftop state=started enabled=yes"
三、ansible playbook&
& & &相当于将各命令模块内容写进配置文件中,然后集中执行,类似于shell脚本。例如:实际生产中,需批量管理很多机器,yum安装,管理配置文件、服务等
1. ansible配置文件格式
& & vim /etc/ansible/test.yml & # 以.yml结尾
&-&hosts:&testhost&
& &remote_user:&root&
& &tasks:&
& &-&name:&test_playbook&
& & shell:&/bin/touch&/tmp/ansible_test03.txt&
2. 执行ansible playbook
& & ansible-playbook test.yml
3. 搜集机器上系统相关信息,用到setup模块
& & 说明:当管理较多不同系统的主机时,可以根据获取到的不同类型执行对应操作,如,使用apt-get
& & &ansible testhost -m setup
4. ansible变量-user命令模块
& & vim /etc/ansible/create_user.yml
-&name:&create_user
& gather_facts:&false&
& &-&user:&"test"&
& & & -&name:&create&user
& & & & user:&name="{{&user&}}"&
5. file命令模块-ansible循环
& & vim /etc/ansible/loop.yml
-&hosts:&testhost
& user:&root
& & -&name:&change&mode&for&file
& & &file:&path=/tmp/{{&item&}}&mode=600&owner=root&group=root
& & &with_items:
& & & -&1.txt
& & & -&2.txt
6. when命令模块-ansible条件判断
& & vim /etc/ansible/when.yml
-&hosts:&testhost
& user:&root
& gather_facts:&True
& &-&name:&use&when
& & shell:&/bin/touch&/tmp/when.txt
& & when:&facter_ipaddress&==&"172.16.115.202"
下面关于Ansible的文章您也可能喜欢,不妨参考下:
使用Ansible批量管理远程服务器&
7 中安装并使用自动化工具 Ansible&
CentOS 7上搭建Jenkins+Ansible服务&
Linux下源码编译安装Ansible及排错记录&
Ansible基础&安装与常用模块&
自动化运维工具之 Ansible 介绍及安装使用&
Ansible入门notify和handlers&
CentOS 6.5安装自动化工具Ansible和图形化工具Tower&
Ansible 的详细介绍:Ansible 的下载地址:
本文永久更新链接地址:
相关资讯 & & &
& (03月26日)
& (03月06日)
& (03月26日)
& (03月06日)
& (03月06日)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款ansible入门
Ansible是一款极为灵活的开源工具套件,能够大大简化Unix管理员的自动化配置管理与流程控制方式。它利用推送方式对客户系统加以配置,这样所有工作都可在主服务器端完成。其命令行机制同样非常强大,允许大家利用商业许可Web
UI实现授权管理与配置。
需要将Ansible部署在中央服务器当中,同时在Ansible主机文件内配置所需管理的客户端群组以及主机名称。托管主机的配置流程也非常精简,只需要安装功能性Python 2.4或者2.6并为连入的Ansible主服务器及各台主机配置SSH authorized_keys文件。
1、安装ansible
安装了epel的源之后,可以指定使用epel源通过yum安装ansible
2、生成ssh-key
将管理服务器生成的ssh-key上传到各个被管理主机的.ssh/authorized_keys文件中。设置成无密钥登录主机。
First commands
安装ansible之后,编辑/etc/ansible/hosts文件,(或者在ansible文件中指定其他文件)。将已经配置无密钥登录的被管理主机写到配置文件中。
$cat /etc/ansible/hosts
192.168.8.52
现在可以ping已经配置在hosts文件中节点机,
$ansible all -m ping
192.168.8.52 | success && {
&changed&: false,
&ping&: &pong&
ansible尝试使用当前登录用户来远程连接节点主机,也可用通过 -u 来指定用户(此用户在节点机存在,并且已经配置了无密钥登录)
$ansible all -m ping -u wyf
192.168.8.52 | success && {
&changed&: false,
&ping&: &pong&
Inventory(hosts文件配置)
ansible可以同时工作在多个系统上,通过匹配保存在/etc/ansible/hosts文件中的主机列表,执行指定的命令。
Inventory的格式可以如下配置;
[webservers]
[dbservers]
中括号指定组名称,可以通过组名来分辨节点机,并匹配你要执行的命令。
一个节点机可以同时存在于多个组中。如果ssh监听的端口不是标准的22,你可以在节点机后面加一个冒号,来指定ssh的端口
如果你想给一个拥有静态ip的定义一个别名,可以这样:
dawang ansible_ssh_port=1003 ansible_ssh_host=192.168.10.3
如果有很多个主机,并且域名相识,可以这样写hosts文件
[webservers]
www[01:50].
[databases]
还可以针对每一个主机配置变量
ansible_ssh_host=host1
指定连接主机
ansible_ssh_port=22
指定连接端口
ansible_ssh_user=user1
指定连接用户
ansible_ssh_pass=abc
指定连接用户的密码,不推荐
ansible_sudo_pass=abc
指定sudo的密码
ansible_connection=local
指定连接方式,local或者ssh
ansible_shell_type=bash
指定shell类型
ansible_ssh_private_key_file=/root/klyg.pem
aws主机指定pem文件路径。
如果需要,可以将两个组名再放在一个组里,建立一个大组,并建立相应的变量,为playbooks使用。
[cluster:children]
[cluster:vars]
http_port=80
ntp_server=asia.pool.ntp.org
pattern在ansible的作用是指定匹配的主机执行后续的命令,也就是决定了与哪些主机建立连接。在playbook中,就意味着匹配哪些主机执行后续的配置或者执行相应的程序。
通用的方法如下:
ansible &pattern& -m &module& -a &arguments&
举例: ansible dawang -m service -a &name=httpd state=restarted&
pattern通常还指一个组或者某一台主机,上述例子就是指定了一个主机“dawang”。
&all& &*& 这两个pattern相当于指定了host文件中的所有主机,
当处理一个或多个组的时候,可以用一下来表示“或”来处理
webserver:dbservers
也可以指定一个组,并排除其中的某台主机
webserver:!phoenix
指定一个组,再加上组外的其他一台主机
webserver:&staging
也可以来指定主机名或者ip来匹配多台主机
顶一下(0) 踩一下(0)
热门标签:}

我要回帖

更多关于 nginx 虚拟主机配置 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信