ansible部署及使用

ansible部署

 yum -y install epel-release
 yum -y install ansible
 修改ip组,后面可以根据组名发布到每个ip下面
 vim /etc/ansible/hosts
	[elk]
	192.168.5.6
	192.168.5.24
	192.168.5.25
 配置公钥并发布到每台机器上面
 ssh-keygen -t dsa
 vi /etc/ssh/sshd_config
 # 将以下内容不要注释掉
 	AuthorizedKeysFile      .ssh/authorized_keys
 	PubkeyAuthentication yes
 systemctl restart  sshd
 将公钥分配到每台机器上
 ssh-copy-id -i ~/.ssh/id_dsa.pub root@192.168.5.25
 测试是否安装成功
 ansible elk -m ping --user root

在这里插入图片描述

ansible常用模块

ansible 命令及使用参数

# 语法格式:
ansible <pattern_goes_here> -m <module_name> -a <arguments>
# 也就是:
ansible  匹配模式   -m  模块  -a  '需要执行的内容'

# 解释说明:
匹配模式:即哪些机器生效 (可以是某一台, 或某一组, 或all) , 默认模块为command , 执行常规的shell命令.

# 参数:
-v,--verbose:输出更详细的执行过程信息,-vvv可得到执行过程所有信息。
 
-i,PATH,--inventory(清单)=PATH:指定inventory(清单)信息,默认/etc/ansible/hosts
 
 ansible elk -f 5 -m ping --user root
 设置1-5会有明显的变化
-f NUM,--forks=NUM:并发线程数,默认5个线程。
 
--private-key=PRIVATE_KEY_FILE:指定密钥文件。
 
-m NMAE,--module-name=NAME:指定执行使用的模块。
 
-M DIRECTORY,--module-path=DIRECTORY:指定模块存放路径,默认/usr/share/ansible,也可以通过ANSIBLE_LIBRARY设定默认路径。
 
-a ‘ARGUMENTS’,--args=‘ARGUMENTS’:模块参数。
 
-k,--ask-pass SSH:认证密码
 
-K,--ask-sudo-pass sudo:用户的密码(--sudo时使用)。
 
-o,--one-line:标准输出至一行。
 
-s,--sudo:相当于Linux系统下的sudo命令。
 
-t DIRECTORY,--tree=DIRECTORY:输出信息至DIRECTORY目录下,结果文件以远程主机命名。
 
-T SECONDS,--timeout=SECONDS:指定连接远程主机的最大超时,单位是秒。
 
-B NUM,--background=NUM:后台执行命令,超NUM秒后中止正在执行的任务。
 
-P NUM,--poll=NUM:定期返回后台任务进度。
 
-u USERNAME,--user=USERNAME:指定远程主机以USERNAME运行命令。
 
-U SUDO_USERNAME,--sudo-user=SUDO_USERNAME:使用sudo,相当于LInux下的sudo命令。
 
-c CONNECTION,--connection=CONNECTION:指定连接方式,可用选项paramiko(SSH)、ssh、local,local方式常用于crontab和kickstarts。
 
-l  SUBSET,--limit=SUBSET:指定运行主机。
 
-l ~REGEX,--limit=~REGEX:指定运行主机(正则)。
 
--list-hosts:列出符合条件的主机列表,不执行任何命令。
ansible elk --list-hosts

# 执行的状态返回信息:
		--绿色:执行成功并且不需要做改变的动作
		--黄色:执行成功并且对目标主机做变更
		--红色:执行失败

ansible模块

文件模块

copy:将本地文件复制到受控主机
file:创建或者和删除远程主机上的文件或者目录
lineinfile:替换文件中的内容,添加内容到指定文件位置
synchronize:使用rsync同步内容

软件包模块

package:使用操作系统本机的自动检测软件包管理器管理软件包
yum:使用yum软件包管理器管理软件包
apt:使用apt软件包管理器管理软件包
dnf:使用dnf软件包管理器管理软件包
pip:从PyPI管理Python软件包

系统模块

firewalld:使用firewalld管理任意端口和服务
reboot:重新启动计算机
service:管理服务
user:添加、删除和管理用户账户

Net Tools模块

get_url:通过http、https或者ftp下载文件
nmcli:管理网络
uri:与WEB服务交互

常用模块及使用

1.user模块

参数 解释
name 要创建、修改、移除的用户名
password 设置用户密码。此处只能使用加密密码作为值
system 设置为yes表示创建一个系统用户,只能用于创建不能用于修改已有用户为系统用户
state 创建用户(present)还是删除用户(absent)。 默认为present
createhome 创建家目录,或者已有的用户但家目录不存在也会创建。设置为no则不创建家目录
home 指定要创建的家目录路径
move_home 如果设置为yes,则"home="则表示将家目录移动到此选项指定的路径下
uid 设置用户的uid
group 设置用户的primary group
groups 将用户加入到辅助组列表中。如果设置"groups=", 则会将此用户从所有辅助组中移除
shell 设置用户的shell
force 配合’state=absent’时,等价于’userdel --force’, 即强制删除用户、家目录和邮件列表
remove 配合’state=absent’时, 等价于’userdel --remove’, 即删除家目录和邮件列表
update_password user是幂 等模块,"always"将总是修改密码。"on_.create"将只在创建用户时设置密码
临时命令使用user模块来确保newbie用户存在于node1上,并且其UID为4000
ansible elk -m user -a 'name=newbie uid=4000 state=present'

登录到elk这个机器上
id elk查看id

设置elk用户的密码
ansible elk -m user -a 'name=newbie password=docker123'

创建无家目录,不能登录的用户
ansible node1 -m user -a 'name=cs_user create_home=no shell=/sbin/nologin state=present'

2.shell模块

ansible elk -m shell -a "bahs /root/1.sh"
elk主机清单
-a 指定执行的命令

通过shell模块删除指定用户
ansible elk 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_51711897

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值