ansible官方文檔python
項目:代碼發佈系統nginx
實現功能: 發佈代碼web
python開發的一款開源工具shell
批量到執行遠程主機命令django
yum install ansible -ycentos
rpm -ql ansible
ansible # 用來執行ansible的一些命令 ansible-doc #用來查看ansible的模塊的幫助信息 ansible-playbook #用來執行playbook ansible-galaxy #用來下載第三方的playbook
ansible <host-pattern> [options] -a MODULE_ARGS #模塊的參數 -C, --check #測試,幹跑 -f FORKS #指定併發數 --list-hosts #列出host-pattern主機 --syntax-check #語法檢查 -m MODULE_NAME, #指定模塊
ssh-keygen
ssh-copy-id 192.168.19.9
ansible all -m ping #跟系統自帶的ping不同
ansible web -m command -a 'pwd' ansible web -a 'chdir=/tmp pwd' #切換到/tmp並執行pwd ansible web -a 'creates=/etc/ mkdir /data2' #判斷creates是否存在,真就忽略後面的操做 ansible web -a 'removes=/tmp/data mkdir /tmp/data2' #判斷removes是否存在,假就忽略後面的操做
tail -1 /etc/shadow 查看最後一個用戶 echo 'test1'|passwd --stdin test1 設置用戶密碼,不須要二次確認
Usage: ansible-doc [-l|-F|-s] [options] [-t <plugin type> ] [plugin] -a #列出全部的模塊 -l #列出ansible的模塊 -s #片斷式顯示模塊的信息 # 列出模塊的詳細信息
ansible web -m shell -a 'echo "test1"|passwd --stdin test1' #修改密碼 ansible 192.168.19.9 -m shell -a '/root/a.sh' #指定遠程主機上的shell腳本 ansible 192.168.19.9 -m shell -a '/root/a.py' #指定遠程主機上的python文件
ansible all -m script -a '/root/a.sh' #執行管控機上的shell腳本
ansible web -m copy -a 'src=/etc/fstab dest=/data/fst' #src指定源文件 dest指定目標文件 ansible web -m copy -a 'src=/etc/fstab dest=/data/fst backup=yes' #backup備份 ansible web -m copy -a 'src=/etc/init.d dest=/data/' #複製目錄和目錄下的文件到遠程主機,遠程主機也是一個文件夾 ansible web -m copy -a 'src=/etc/init.d/ dest=/data/' #複製目錄下的文件 ansible web -m copy -a 'src=/etc/fstab dest=/data/fst backup=yes mode=600' #mode 指定權限,owner指定文件的屬主,group用來指定屬組
ansible db -m file -a 'path=/data10 state=directory' #path指定地址,state=directory表示建立文件夾 ansible db -m file -a 'path=/data10/test1 state=touch' #state=touch 表示建立新文件 ansible db -m file -a 'path=/data10/test10 src=/data10/test1 state=link' #src表示源文件,path是否是目標,state=link是否是建立一個軟鏈接 ansible db -m file -a 'path=/data10/test1 state=absent' #state=absent 表明刪除
ln 建立硬連接 連接文件變動,源文件不變 ln -s 建立軟鏈接 連接文件變動,源文件變
ansible db -m fetch -a 'src=/etc/fstab dest=/tmp' #src源地址(在被控機器上),dest目標地址(管控機上的地址)每一個管控機的文件都生成了一個目錄,會保持文件的原來目錄結構
[name] #分組 name=CentOS-$releasever - Base - mirrors.aliyun.com #這個分組的名字 failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ #分組的url,叫baseurl http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/ gpgcheck=0 # gpgcheck=1須要驗證key文件,gpgcheck=0不驗證key enabled=1 #enabled=1 表示分組可用,enabled=0表示分組是不可用的 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #key文件
ansible web -m yum -a 'name=nginx state=installed' # 安裝nginx ansible web -m shell -a 'rpm -qa|grep nginx' #查看nginx是否是安裝成功 ansible web -m yum -a 'name=nginx state=absent' #卸載nginx
ansible web -m pip -a 'name=Django==1.11.15' # 安裝django
pip freeze > file #給當前的python模塊作快照 pip install [options] -r <requirements file> 安裝 pip list #查看當前python安裝的全部模塊